概述
来源:方应杭: prototype和__ proto __的区别
mark一下,这篇写的非常好,自己就不献丑了
- prototype 指向一块内存,这个内存里面有共用属性,而 __ proto __ 指向同一块内存。
- prototype 和__ proto __ 的不同点在于:prototype 是构造函数的属性,而 __ proto __ 是对象的属性
- 如果没有 prototype,那么共用属性就没有立足之地
- 如果没有 __ proto __,那么一个对象就不知道自己的共用属性有哪些。
object.toString() === obj.toString.call(obj) === window.Object.prototype.toString.call(obj)
object的 __ proto __ 指向 window.Object.prototype
同理
arr.valueOf() === arr.valueOf.call(arr) === window.Object.prototype.valueOf.call(arr)
arr.__ proto __ 只有 pop、push 也没有 valueOf,于是去 arr. __ proto __ . __ proto __ 上找
而 arr. __ proto __ . __ proto __ 就是window.Object.prototype(array算是object的一个子类型)
最后
以上就是香蕉小丸子为你收集整理的prototype和__proto__的区别的全部内容,希望文章能够帮你解决prototype和__proto__的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复