此代碼導致在控制檯上記錄"!"
。JavaScript和匿名函數中閉包的細節
var g = {};
(function() {
var t = this;
t.x = "x";
g.a = function() {
console.log(t.x);
};
})();
(function() {
var t = this;
t.x = "!";
g.b = function() {
console.log(t.x);
};
})();
g.a();
匿名函數共享一個this
嗎?我使用this
錯了嗎?我真的不明白這裏發生了什麼。
我想讓g.a()
繼續返回第一個匿名函數中定義的x
的值。
我正在使用node.js,如果它有所作爲。
有時候'this'不是指這個函數嗎? –
@luxun:你的意思是功能本身?沒有永不。 –
好吧,除非你專門設置了一些東西,否則它就會有點奇怪。它肯定不會默認或任何東西。 – Pointy