2

建议在本地缓存全局变量以获得更好的性能,如下所示:

function showWindowSize() {
    var w = window;
    var width = w.innerWidth;
    var height = w.innerHeight;
    alert("width: " + width + " height: " + height);
}

使用“this”关键字时也是如此,还是已经缓存?

例子:

Game.prototype.runGameLoop = function() {
  var self = this;
  self.update();
  self.draw();
};
4

1 回答 1

3

该符号始终是本地引用,因此出于性能原因this无需“缓存”它。但是,可能还有其他原因将其值保留在另一个局部变量中。当有一个本地函数需要访问其包含函数的值时,包含函数必须制作该值的副本,因为总是在任何函数调用时设置。thisthis

(调用“本地引用”可能并不完全准确this;关键是关键字总是引用与本地函数激活记录相关的值。)

于 2012-09-30T14:51:46.653 回答