По this answer to 'Is object empty?':Могу ли я ускорить вызов собственных методов в JavaScript?
// Speed up calls to hasOwnProperty
var hasOwnProperty = Object.prototype.hasOwnProperty;
Я видел несколько реализаций нечто подобное в небольших библиотеках JavaScript, как:
var slice = Array.prototype.slice;
//or
function slice(collection) {
return Array.prototype.slice.call(collection);
}
Я сделал быстрый jsperf испытать такого рода вещи, и кэширование выглядел немного быстрее, чем не кеширование, но мой тест может быть испорчен.
(я использую слово «кэш» означает хранение метод внутри переменной.)
Контекст этого вопроса, когда разработчик должен назвать нативный метод несколько раз, и то, что наблюдаемая разница было бы.
Выполняет ли кэширование собственный метод, чтобы двигатель не мог заглянуть внутрь объекта для метода каждый раз при вызове метода, тем самым делая кеширование более быстрым способом вызова собственных методов всякий раз, когда разработчик должен вызывать один и тот же нативный метод больше чем единожды?
[Является ли микро-оптимизация подходящей?] (Http://stackoverflow.com/a/3471000/402037) – Andreas
Что заставляет вас думать, что это связано с естественностью методов? Часть, которая оптимизируется, повторный поиск атрибутов, должна быть полностью агностикой w.r.t. то, что просматривается (на самом деле, я не могу себе представить, что это не пробитая схема, где это может иметь значение). – delnan
Что это значит, это поиск по цепочке вложенных прототипов для свойства. – Barmar