我是靠谱客的博主 香蕉小丸子,最近开发中收集的这篇文章主要介绍prototype和__proto__的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

来源:方应杭: prototype和__ proto __的区别

mark一下,这篇写的非常好,自己就不献丑了

  1. prototype 指向一块内存,这个内存里面有共用属性,而 __ proto __ 指向同一块内存。
  2. prototype 和__ proto __ 的不同点在于:prototype 是构造函数的属性,而 __ proto __ 是对象的属性
  3. 如果没有 prototype,那么共用属性就没有立足之地
  4. 如果没有 __ 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__的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部