🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 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)