发表于: 2016-08-18 23:25:44

2 2199


  • 今天完成的事情:原型。函数与对象,鸡生蛋,蛋生鸡。


  1. 明天计划的事情查缺补漏


    遇到的问题:。。


收获:

对象 (所有对象由函数创建)

console.log(typeof (Object));  //

functionconsole.log(typeof (Array));  // function


每个函数function都有一个prototype,即原型。这里再加一句话——每个对象都有一个__proto__,可称为隐式原型。
对象由函数创建,而函数是一个对象。(所谓鸡生蛋,蛋生鸡)

因此obj.__proto__=== Object.prototype。


每个对象都有一个__proto__属性,指向创建该对象的函数的prototype。

Object.prototype是一个特例——作为对象它的__proto__指向的是null。

函数也是一个对象, 即函数也会有__proto__属性。


所以Function也是一个函数,函数是一种对象,也有__proto__属性。既然是函数,那么它一定是被Function创建。所以——Function是被自身创建的。所以它的__proto__指向了自身的Prototype。最终形成一个环形结构。


Instanceof的判断队则是:沿着A的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。

console.log(Object instanceof Function);  // true

console.log(Function instanceof Object);  // true

console.log(Function instanceof Function); //truE





返回列表 返回列表
评论

    分享到