本地缓存全局变量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();
};
答案 0 :(得分:4)
符号this
始终是本地引用,因此出于性能原因无需“缓存”。可能还有其他原因可以将其值保留在另一个局部变量中。当有一个本地函数需要从其包含函数访问this
值时,包含函数必须复制该值,因为this
总是在任何函数调用时设置。
(将this
称为“本地引用”可能并不完全准确;关键是关键字始终引用与本地函数激活记录相关的值。)