我正在寫一個計數器來計算對象獲取範圍的變量,它看起來像這樣:的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
。
任何線索?
更新
我喜歡一個更好的設計,這樣的
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
更新2
對不起,認爲這將是更容易有一個示例代碼。但這裏是真實的:https://gist.github.com/BobWassermann/e709ec303477a015b609
這是一個糟糕的設計。實例不應修改全局(或外部)變量。如果您只想創建該構造函數的一個實例,則不需要定義構造函數,即使用單例。 – undefined
什麼是「window.JSON.parse(data)」中的「數據」? – Art713
@Vohuman更新了代碼,這給了我'undefined'' –