我正在使用原型(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.xthis.x 之间可能没有明显的区别。 可能有所不同的是

  var x = this.x, y = this.y; 
 
  // massive amounts of computation involving x and y 

这样的微优化可能不值得,除非你真的参与了一些前沿的游戏开发或其他事情。首先让你的算法数据结构达到标准,然后再担心像这样的事情。你永远不知道 JavaScript 运行时系统的开发人员何时会引入新的优化。它们无法修复您的错误算法,但可以显着影响微优化。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!