如果我理解正确,那么Javascript中的每个对象都是从Object原型继承的,这意味着Javascript中的每个对象都可以通过其原型链访问hasOwnProperty函数。
在阅读require.js的源代码时,我偶然发现了该函数:
function hasProp(obj, prop) {
return hasOwn.call(obj, prop);
}
hasOwn是对的引用Object.prototype.hasOwnProperty。将此功能编写为
function hasProp(obj, prop) {
return obj.hasOwnProperty(prop);
}
既然如此,我们为什么要完全定义此功能?是否只是为了获得(略微)提高性能而使用快捷方式和对属性访问进行本地缓存的问题,还是我缺少在没有此方法的对象上使用hasOwnProperty的情况?
萧十郎
相关分类