我不确定取消引用变量是否或何时有用(以提高性能)。
var x = a.b.c.d[some_key].f;
while (loop) {
do_something_with(x);
}
似乎比
while (loop) {
do_somthing_with(a.b.c.d[some_key].f);
}
这是需要的还是由智能 JavaScript 引擎自动完成的?
但我的实际问题是我是否应该这样做,例如,在图书馆。
(function() {
var slice = Array.prototype.slice;
Function.prototype.x = function x() {
var args = slice.call(arguments, 0);
...
};
})();
要不就
Function.prototype.x = function x() {
var args = Array.prototype.slice.call(arguments, 0);
...
};
引擎无法自动改进这一点,因为它不知道Array.prototype.slice
在运行时是否会发生变化。
那么:创建一个用于创建 slice 函数的局部引用的闭包会使脚本更快吗?或者额外的闭包范围是否使它比访问 Array 的属性“原型”的属性“切片”更慢?