2.原型&原型链

1、如何准确判断一个变量是数组类型

  1. var a = [];
  2. console.log( a instanceof Array );

2、写一个原型链继承的例子

3、描述new一个对象的过程

4、zepto源码中如何使用原型链

5、构造函数

  1. function Foo(name, age){
  2. this.name = name;
  3. this.age = age;
  4. this.class= 'class-1';
  5. }
  6. var f = new Foo('zhangsan', 20);

6、五条原型规则

1)所有的引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(null除外)

  1. var obj = {}; obj.a = 100;
  2. var arr = []; arr.a = 100;
  3. function fn(){} fn.a = 100;

2)所有的引用类型,都有一个proto属性,属性值是一个普通的对象

  1. console.log(obj.__proto__);
  2. console.log(arr.__proto__);
  3. console.log(fn.__proto__);

3)所有的函数,都有一个prototype属性,属性值也是一个普通的对象

  1. console.log(fn.prototype);

4)所有的引用类型,proto属性值 指向它的构造函数的“prototype”属性值

  1. console.log(obj.__proto__ === Object.prototype);

5)