Я пишу счетчик для подсчета объекта, и это выглядит следующим образом:Javascript: Получить область видимости переменной
function myFunc(param) {
this.param = param;
param.foo = function() {
var object = window.JSON.parse(data);
for (i in object) {
counter++;
}
}
}
var foo = new myFunc('data.json');
var counter = 0;
document.write(counter); // displays 0
Как я могу добиться, чтобы получить значение счетчика вне функции? Я попробовал почти все, от window
до return
, чтобы отделить functions
.
Любой ключ?
Update
Я предпочитаю лучший дизайн, как этот
function myFunc(param) {
this.param = param;
param.foo = function() {
var object = window.JSON.parse(data);
var counter = 0;
for (i in object) {
counter++;
}
return counter;
}
}
var foo = new myFunc('data.json');
document.write(counter); // displays undefined
Update 2
К сожалению, думал, что это было бы легче иметь образец кода. Но вот реальный: https://gist.github.com/BobWassermann/e709ec303477a015b609
Плохой дизайн. Экземпляры не должны изменять глобальные (или внешние) переменные. Если вы просто хотите создать один экземпляр этого конструктора, тогда нет необходимости определять конструктор, используйте одноэлемент. – undefined
Что такое "данные" в категории "window.JSON.parse (data)"? – Art713
@ Vohuman Обновлен код, это дает мне '' undefined'' –