このコードは、"!"
がコンソールに記録されるようにします。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