例如,如果我覆盖constructor
属性,如何获得原始值?
var obj = {}
obj.constructor == Object // true
obj = {"constructor": 1}
obj.constructor == Object // false, how to get pointer to Object?
可以说,我得到了对象,它已经有了"constructor": 1
,我无法保存指向原始对象的指针constructor
例如,如果我覆盖constructor
属性,如何获得原始值?
var obj = {}
obj.constructor == Object // true
obj = {"constructor": 1}
obj.constructor == Object // false, how to get pointer to Object?
可以说,我得到了对象,它已经有了"constructor": 1
,我无法保存指向原始对象的指针constructor
ES5 介绍Object.getPrototypeOf()
:
Object.getPrototypeOf(obj).constructor == Object
ES6 草案目前包含__proto__
由大多数主要浏览器实现的属性(并且很可能会在 IE11 中发布),但现在它被认为是非标准的:
obj.__proto__.constructor == Object
当然,Object.getPrototypeOf()
这是一种更适合您的用例的跨浏览器标准方法。