0

这是有问题的代码:

hasOwnProperty: function (obj, prop) {
    var hasOwn = Object.prototype.hasOwnProperty,
        proto;
    if (hasOwn) {
        return hasOwn.call(obj, prop);
    } else {
        proto = obj.__proto__ || obj.constructor.prototype;
        return (prop in obj) && (!(prop in proto) || proto[prop] !== obj[prop]);    
    }
}

jslint 在吐出此错误时失败:

Error:
Problem at line 653 character 29: Reserved name '__proto__'.
proto = obj.__proto__ || obj.constructor.prototype;

有什么想法/解决方案吗?

4

1 回答 1

0

这似乎让 jsLint 保持安静:

hasOwnProperty: function (obj, prop) {
    var hasOwn = Object.prototype.hasOwnProperty,
        proto = '__proto__';
    if (hasOwn) {
        return hasOwn.call(obj, prop);
    } else {
        proto = obj[proto] || obj.constructor.prototype;
        return (prop in obj) && (!(prop in proto) || proto[prop] !== obj[prop]);    
    }
}
于 2011-03-12T00:33:45.737 回答