jjzjj

getPrototypeOf

全部标签

javascript - 为什么 getPrototypeOf() 在 JavaScript 中返回不正确的构造函数?

varprotoRabbit={size:"small"};varfastRabbit=Object.create(protoRabbit);console.log(Object.getPrototypeOf(fastRabbit));以上片段打印:Object{size:"small"}这不应该打印protoRabbit{size:"small"}吗?我的理解中缺少什么? 最佳答案 打印在对象前面的名称是构造函数的名称。您的对象protoRabbit具有构造函数Object,因为您使用对象字面量创建了此对象:varprotoRab

javascript - IE8 getPrototypeOf 方法

非常简单:我有代码使用Object.getPrototypeOf(...)获取DojoWidget的继承类(只是一个JS对象)。IE8不支持Object.getPrototypeOf(...)。我需要一个IE解决方法。有任何想法吗?提前致谢。 最佳答案 JonResig的polyfill有效http://ejohn.org/blog/objectgetprototypeof/我把它做得更小了if(typeofObject.getPrototypeOf!=="function")Object.getPrototypeOf="".__p

javascript - Object.getPrototypeOf() 与 Javascript 中的 Object.constructor.prototype 相同吗?

Object.getPrototypeOf(obj)和obj.constructor.prototype有区别吗?或者这两个引用的是同一个东西? 最佳答案 没有它返回内部[[Prototype]]值(value)。例如:varo=Object.create(null);Object.getPrototypeOf(o);//nullo.constructor.prototype;//errorvarp={};varo=Object.create(p);Object.getPrototypeOf(o);//po.constructor.

javascript - Object.getPrototypeOf 与 __proto__ 之间的区别

我知道后者是非标准的。但是Object.getPrototypeOf和__proto__之间有区别吗?我正在研究javascript中的原型(prototype)链是如何工作的,并希望弄清楚这部分。谢谢。 最佳答案 来自MDN:Object.getPrototypeOf()isthestandardimplementationoftheoldanddeprecatedobject.__proto__property.Howeveritisaread-onlymethod.所以基本上,如果您正在读取值,它们会完成相同的事情,除了__p

javascript - 不使用 getPrototypeOf?

在thisvideo(大约31分钟),Crockford说他们(代表ECMAScript委员会发言)建议不要使用Object.getPrototypeOf。他的解释是,它并不是真正适用于普通开发人员,而是适用于像Caja这样的东西,它可能会从Object中删除它以防止您访问它。Crockford有时会在他对如何使用JS的观点上非常固执己见(我们都不能吗?),所以我想知道这是否真的是ES委员会的完整建议,或者它是否只是Crockford的建议之一个人意见。有没有人读过任何官方声明警告不要使用Object.getPrototypeOf?这对我来说真的听起来很糟糕:(,但我没有在MDN页面上