0
好的內是可訪問的,所以我知道,通過關閉我可以做這樣的事情:外部設定的變量應該對象
var x,
obj = {
init: function() {
x = 123;
},
func: function() {
return x;
}
};
obj.init();
obj.func();
==> 123
不過,我想從外部能夠爲X應用價值(外對象,後來上)的...我想,也許我可能只是這樣做:
var obj = {
init: function() {
// do something nice here...
},
func: function() {
return x;
}
};
var foo = {
doIt: function() {
var init = obj.init;
var x;
obj.init = function() {
x = 456;
init.apply(obj);
}
obj.init();
obj.func();
}
};
foo.doIt();
==> (error) x is not defined
但是,它不工作..這是可以做到的某種方式?
謝謝。
不知道我究竟明白了什麼你試圖做...爲x應該是全球性的?或者它應該是obj中的變量,還是你希望它是一個私有變量......我不清楚你想在這裏做什麼。 – Zoidberg 2011-03-03 02:57:40
x應該是obj中的一個變量。最終,我試圖解決一個問題,即無法在嵌套在多個函數中時使用「this」來引用對象本身。我總是需要在對象的init方法中定義'self = this',並且我正在尋找一種方法來實現這種自動化,所以我的所有對象默認都有一個自變量,它會引用對象本身。下面是我真正在做的一個例子:http://pastie.org/1627048 – patrick 2011-03-03 03:06:01