Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 799 Bytes

prefer-object.getPrototypeOf-to-__proto__.md

File metadata and controls

25 lines (21 loc) · 799 Bytes

使用Object.getPropertyOf函数而不要使用__proto__属性

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函数。