“本”是否在本地缓存?

时间:2012-09-30 14:48:16

标签: javascript performance caching scope

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

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();
};

1 个答案:

答案 0 :(得分:4)

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

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