我正在使用原型(prototype)方法,这里是场景
function Foo () {
this.x = 5;
this.y = 2;
this.z = this.addValues();
}
Foo.prototype = {
addValues: function (){
return this.x + this.y;
}
}
显然这只是一个简单的例子;在实际项目中,“addValue”函数中会有很多事件。使用“this”关键字 100 次或将其缓存到局部变量是否有助于提高性能。例如,下面会有什么不同吗?
Foo.prototype = {
addValues: function (){
var self = this;
return self.x + self.y;
}
}
请您参考如下方法:
self.x
和 this.x
之间可能没有明显的区别。 可能有所不同的是
var x = this.x, y = this.y;
// massive amounts of computation involving x and y
这样的微优化可能不值得,除非你真的参与了一些前沿的游戏开发或其他事情。首先让你的算法和数据结构达到标准,然后再担心像这样的事情。你永远不知道 JavaScript 运行时系统的开发人员何时会引入新的优化。它们无法修复您的错误算法,但可以显着影响微优化。