JS: Тонкости работы с функциями

Mar 29, 2010 15:18

Некоторое время назад я писал про разные интересные возможности функций. С тех пор я начитался умных статей и теперь готов поделиться новым знанием.

1. Использование объекта arguments в функции приводит к небольшому замедлению работы скрипта. Дело в том, что этот объект создается по запросу, т.е. если мы его не используем, то он и не будет создан. Если есть возможность - лучше обращаться к параметрам функции по их именам.

2. Кэширование результатов вычислений. Каждая функция в JavaScript является объектом, которому мы можем назначать свойства.

function myFn() {
    if (!myFn.cache) {
        var currentTime = new Date()
        myFn.cache = currentTime.getHours()+':'+currentTime.getMinutes()+':'+currentTime.getSeconds();
    }
    return myFn.cache
}В данном примере вычисляется время первого вызова функции. Все остальные обращения к ней будут возвращать один и тот же результат.

3. Самозапускающиеся функции. Все что для них нужно, это несколько скобок.

(function(){
alert('autostart!');
})();
4. Функции, которые возвращают функции.

function setup() {
    alert(1);
    return function() {
        alert(2);
    };
}
var my = setup(); // alerts 1
my(); // alerts 2Мне кажется, этот пример говорит сам за себя.

5. Функции в качестве параметров (callbacks). Обычно их используют для реализации отложенного выполнения в функции setTimeout. Но функции можно также передавать и в обычные пользовательские функции.

По материалам: www.jspatterns.com

function, js, javascript

Previous post Next post
Up