var obj = Object.create(null);
console.log('__proto__' in obj); // false
console.log(Object.getPrototypeOf(obj)); // null
// 可以使用 __proto__属性来模仿 Object.getPropertyOf() 函数
if('undefined' === typeof Object.getPrototypeOf) {
Object.getPrototypeOf = function(obj) {
var t = typeof obj;
if(!obj || (t !== 'object' && t !== 'function')) {
throw new Error('not an object');
}
return obj.__proto__;
}
}
谨记
使用符合标准的Object.getPrototypeOf函数而不要使用非标准的proto属性。
在支持proto属性的非ES5环境中实现Object.getPrototypeOf函数。
参考资料:https://lee134134134.github.io/page/6/
-
Previous
每天一个前端知识(61):理解prototype,getPrototypeOf和__proto__之间的不同) -
Next
每天一个前端知识(63):始终不要修改__proto__属性)