1

例如,如果我覆盖constructor属性,如何获得原始值?

var obj = {}
obj.constructor == Object // true
obj = {"constructor": 1}
obj.constructor == Object // false, how to get pointer to Object?

可以说,我得到了对象,它已经有了"constructor": 1,我无法保存指向原始对象的指针constructor

4

1 回答 1

1

ES5 介绍Object.getPrototypeOf()

Object.getPrototypeOf(obj).constructor == Object

ES6 草案目前包含__proto__由大多数主要浏览器实现的属性(并且很可能会在 IE11 中发布),但现在它被认为是非标准的:

obj.__proto__.constructor == Object

当然,Object.getPrototypeOf()这是一种更适合您的用例的跨浏览器标准方法。

于 2013-09-15T20:49:54.643 回答