Javascript 是";这";本地缓存?
为了获得更好的性能,最好在本地缓存全局数据,如下所示:Javascript 是";这";本地缓存?,javascript,performance,caching,scope,Javascript,Performance,Caching,Scope,为了获得更好的性能,最好在本地缓存全局数据,如下所示: function showWindowSize() { var w = window; var width = w.innerWidth; var height = w.innerHeight; alert("width: " + width + " height: " + height); } 使用“this”关键字时是否也是如此,或者它是否已被缓存 例如: Game.prototype.runGameL
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();
};
符号
此
始终是本地引用,因此无需出于性能原因对其进行“缓存”。但是,可能还有其他原因在另一个局部变量中保留其值。当有一个本地函数需要从其包含函数访问this
值时,包含函数必须复制该值,因为this
总是在任何函数调用时设置的
(将
此称为“本地引用”可能并不完全准确;关键是该关键字始终引用与本地函数激活记录相关的值。)我认为该建议适用于经常使用全局引用的情况。意思是,使用var h=window.innerHeight代码>仅在循环内使用window.innerHeight时才有值。如果只使用一次,可能会丢失局部变量..您的建议似乎有误。您肯定不需要窗口
的变量,那些宽度
和高度
变量只有在多次使用时才有用,例如在循环中。@Bergi我想我读的建议是正确的,尽管原始文本可能是错误的?From:“在局部变量中存储任何超出范围的变量,只要它被多次使用”。