@windchimes
2019-07-04T09:30:37.000000Z
字数 860
阅读 236
列表项
前端知识点总结
Function.prototype.a=10Object.prototype.b=20function D() {}var d = new D()console.log(d.a) // undefinedconsole.log(d.b) // 20console.log(D.a) //10console.log(D.b) //20console.log(d.__proto__ === D.prototype)console.log(d.__proto__.__proto__ === Object.prototype)console.log(d.__proto__.__proto__.__proto__ === null)console.log(D.__proto__ === Function.prototype)console.log(D.__proto__.__proto__ === Object.prototype)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