Fai*_*eer 3 javascript oop call
在我的 JavaScript 代码中,我有一个包含以下语句集的函数
function someFunc(object,action){
for(var property in object){
if(Object.prototype.hasOwnProperty.call(object, property)){
//TODO
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将函数内的if 语句替换为
if(obj.hasOwnProperty(property)){
//TODO
}
Run Code Online (Sandbox Code Playgroud)
两者对我来说都很好。我只想知道其中哪个是更好的方法,为什么?我知道obj.hasOwnProperty(property)检查对象的个人财产。我也想知道 call 是如何链接到这里的
object.prototype.hasOwnProperty.call(object, property)
我通常总是和obj.hasOwnProperty(prop).
间接性更少,对于试图阅读和理解您的代码的其他人来说会更加清晰。它的运行速度也会稍快一些,因为您不需要重新绑定this.
我想不出很多需要您使用其他方法的陷阱。
obj继承自null不Object.prototype hasOwnProperty 已经重新申报obj hasOwnProperty 已在obj的原型链中重新声明所有这些场景在日常应用程序中都非常罕见,如果您确实找到了其中之一,那么在那里解决问题是最安全、最简单和最好的,而不是使用更具防御性的Object.prototype.hasOwnProperty.call形式。
| 归档时间: |
|
| 查看次数: |
4011 次 |
| 最近记录: |