### 1、如何準確判斷一個變量是數組類型
~~~
var a = [];
console.log( a instanceof Array );
~~~
### 2、寫一個原型鏈繼承的例子
### 3、描述new一個對象的過程
### 4、zepto源碼中如何使用原型鏈
### 5、構造函數
~~~
function Foo(name, age){
this.name = name;
this.age = age;
this.class= 'class-1';
}
var f = new Foo('zhangsan', 20);
~~~
### 6、五條原型規則
#### 1)所有的引用類型(數組、對象、函數),都具有對象特性,即可自由擴展屬性(null除外)
~~~
var obj = {}; obj.a = 100;
var arr = []; arr.a = 100;
function fn(){} fn.a = 100;
~~~
#### 2)所有的引用類型,都有一個__proto__屬性,屬性值是一個普通的對象
~~~
console.log(obj.__proto__);
console.log(arr.__proto__);
console.log(fn.__proto__);
~~~
#### 3)所有的函數,都有一個prototype屬性,屬性值也是一個普通的對象
~~~
console.log(fn.prototype);
~~~
#### 4)所有的引用類型,__proto__屬性值 指向它的構造函數的“prototype”屬性值
~~~
console.log(obj.__proto__ === Object.prototype);
~~~
#### 5)