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