[关闭]
@windchimes 2019-07-04T09:30:37.000000Z 字数 860 阅读 236

原型和原型链

列表项

前端知识点总结


  1. Function.prototype.a=10
  2. Object.prototype.b=20
  3. function D() {}
  4. var d = new D()
  5. console.log(d.a) // undefined
  6. console.log(d.b) // 20
  7. console.log(D.a) //10
  8. console.log(D.b) //20
  9. console.log(d.__proto__ === D.prototype)
  10. console.log(d.__proto__.__proto__ === Object.prototype)
  11. console.log(d.__proto__.__proto__.__proto__ === null)
  12. console.log(D.__proto__ === Function.prototype)
  13. console.log(D.__proto__.__proto__ === Object.prototype)
  14. console.log(D.__proto__.__proto__.__proto__ === null)

分别输出什么,为什么

https://zhidao.baidu.com/question/755957842691058404.html
https://www.jianshu.com/p/dee9f8b14771

js中函数也是对象,即(function(){}) instanceof Object === true
所有的对象都有自己的构造函数
所有的函数都能够当做构造函数,每个函数都有prototype属性
每个对象都有隐藏的__proto__属性指向它的构造函数的prototype
所有函数的原型都是Funtion.prototype((function(){}).__proto__ === Function.prototype)
访问一个对象的属性时,如果从这个对象里找不到,就从其__proto__里找,再找不到就继续从__proto__.__proto__里找,最终找到object.prototype
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注