Я не уверен, полезен ли (для повышения производительности) переменные разыменования или когда они полезны.
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
измениться в течение времени выполнения.
Итак: создает ли замыкание для создания локальной ссылки на функцию среза, чтобы сделать script быстрее? Или добавляет ли дополнительная область закрытия медленнее, чем доступ к свойству "срез" свойства "prototype" массива?