2

任何人都可以解释对空对象调用 hasOwnProperty 的作用吗?为什么要使用它?

__hasProp = {}.hasOwnProperty

当我开始在 coffescript 中开发时,我发现了这一点.. Ty

4

1 回答 1

9

hasOwnProperty。函数名后面没有括号。

__hasProp是对[MDN]的引用,因为Object.prototype.hasOwnProperty

__hasProp = {}.hasOwnProperty

是一个较短的版本

__hasProp = Object.prototype.hasOwnProperty

现在打电话__hasProp,例如

__hasProp.call(someObject, 'foo')

Object.prototype.hasOwnProperty.call(someObject, 'foo')

我是在开始开发咖啡时创立的。

所以我假设这一行是自动生成的,你可能想知道如果没有人真正需要编写代码,为什么还要创建快捷方式?

将此函数分配给变量避免了查找ObjectObject.prototype并且Object.prototype.hasOwnProperty每次您想使用它时。__hasProp只是一个查找,而不是三个,并且在经常使用时可能会导致性能略有提高。

于 2013-02-22T21:23:08.210 回答