网上的文章,关于对象原型,我感觉说的都很乱。
以下分享一下我的思路。
记住原型就是prototype,原型链可以看做是一条绳子,顺着绳子打结,每次打结都栓上对象的prototype。现在我定义一个对象
function Tank(){
this.type = function(){
console.log("tank");
}
}
那么原型链上绑一个Tank.prototype。
然后原型链这条绳子就看成__proto__,顺着绳子可以找到该对象上一个原型对象prototype
Tank.prototype.__proto__ === Object.prototype
Function.prototype.__proto__ === Object.prototype //Function是它自己的实例
再定义一个对象继承Tank
class Tiger extends Tank{
}
Tiger.prototype.__proto__ === Tank.prototype
最后,Object的prototype沿着绳子往上找是null
Object.prototype.__proto__ ===null
总结,__proto__拴着prototype。记住这个就行了,其他乱七八糟的看多了反而让人搞不清楚了!
425

被折叠的 条评论
为什么被折叠?



