СТАТИЧЕСКИЕ ПЕРЕМЕННЫЕ
Здравствуйте! Подскажите пожалуйста, как в js использовать статические переменные или их подобие(мож свойства какого класса?)! В нете нигде не нашел инфы по этому поводу. Желательно с примерами =)
|
как и любые другие переменные...
|
Я же просил с примером. В PHP, к примеру, определение такое - static $a = 0; А в JS ?
|
qwe=function()
{
alert(++arguments.callee.i)
}
qwe.i=0
qwe()
qwe()
|
Цитата:
|
Цитата:
|
Спасибо! =) Разобрался
|
та пожалуйст, вобщем. сомому интересно было покопатся)
|
Еще одно извращение на тему:
Function.prototype.i = 0;
Function.prototype._ = function() {
this.i++;
this.apply(this, arguments);
};
function f(t, x) {
alert(t + x + "\nItaration: " + arguments.callee.i);
}
f._(2, 3);
f._("Abc", "Def");
|
честно говря, не понял пользы от последнего кода. те же яйца только в смятку.
засоряем Function.prototype , причем абсолютно бессмысленно. способ обращения к переменной из функции не изменился. выхов функции удлинился. кароче, низачот |
function myfunc() {
var i = 0;
myfunc = function() {
return i++;
}
return myfunc();
}
|
Kolyaj,
Самый лучший код в этой теме. жалко в этом форуме нет рейтинга, я бы тебе плюс поставил))))) красиво и со вкусом |
Народ, а this? Объявление статической переменной :
if (typeof(this.i) == 'undefined') {this.i = 0;}
Только что проверил, работает, вот для теста:
function chet() {
if (typeof(this.i) == 'undefined') {this.i = -2;}
this.i += 2;
return this.i;
}
|
Sh4dow, this в этом случае будет равен window, т.е. i -- это фактически глобальная переменная.
console.log(chet()); console.log(chet()); i++; console.log(chet()); console.log(chet()); |
function chet() {
if (typeof(chet.i) == 'undefined') {chet.i = -2}
chet.i += 2;
return chet.i;
}
Пардон, вот что-то типа. Да, я пас, то же самое, собственно, что на 1 стр, получилось =/ |
Скажите пожалуйста, а чем плох такой способ.
Есть допустим отдельный файлик для js и вот взять там и создать переменную вне тела функции. Чем такая переменная не статическая? |
Цитата:
function foo() {
if(!this.i) {
this.i = 0;
}
return this.i++;
}
alert([foo(), foo(), foo()]);
|
Здравствуйте!
Помогите пожалуйста. Хочу создать статическую переменную, которая считала выходы на сайт. Записал скрипт такой //function f() { // if (f.count == undefined) {f.count=0;} // инициализовать при первом вызове // f.count++; // alert("Вызов номер " + f.count); //} Однако при повторном вызове сайта f.count == undefined |
И этой теме уже 4 год пойдет...Хотя какой 4ый? 5ый уже...!
Sergic_l, потому что вы зашли на сайт у вас там "посчиталось" (при этом информация и "посчитании" нигде не сохранилась) используйте куки...Или вам нужен счетчик заходов на сайт? |
поставь яндекс метрику и будут тебе всякие счётчики х))
|
| Часовой пояс GMT +3, время: 10:11. |