|
использование замыкания
Такой вот вопрос
var a; function getA() { if (typeof(a) == 'undefined') { a = 1 + 1; } return a; } var b = getA(); var c = getA(); Можно ли в сделать то же самое но не объявляя переменную 'а' в глобальной области? Ну и чтоб а вычислялось 1 раз. |
Что вы хотите этим сделать?
|
Можно. Вариантов несколько. Только приведенный Вами пример говорит о бесполезности этого. На самом деле это может быть весьма полезным для создания единственного экземпляра объекта - фабрика объектов.
|
Учи основы!!! На сайте куча интересного, полезного, написанного доступным языком материала!
function getA(){ var a = 1+1; return a; } var b = getA(), c = getA(); |
Skipp,with-love-from-siberia,
я хочу вычислять значение один раз. которое буду использовать with-love-from-siberia, Цитата:
|
Sweet,
Спасибо за В'аш совет. Только вот код написанный после В'ашего совета проблему не решает. Я ведь правильно понял, В'ы предложили решение? |
var getA = (function() { var a; return function getA() { if (typeof(a) == 'undefined') { a = 1 + 1; } return a; }; })(); var b = getA(); var c = getA(); |
Riim,
Спасибо! То что нужно! |
Цитата:
Вот еще: function getA() { if ( typeof arguments.callee.a == 'undefined') { arguments.callee.a = 1 + 1; } return arguments.callee.a; }; alert(getA()); alert(getA()); |
Цитата:
UPD: Есть еще такой вариант: function getA(){ return 1+1; };:) |
Часовой пояс GMT +3, время: 01:39. |
|