|
использование замыкания
Такой вот вопрос
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, время: 18:06. |
|