私は、オブジェクトのメソッド(オブジェクトの独自のプロパティの1つを更新する)を引数として別の関数に渡すと、元のオブジェクトは変更されないことに気付きました。例えばJavaScriptオブジェクトのメソッドを渡すとオブジェクトが更新されないのはなぜですか?
:
var obj = {
foo: 0,
bar: function() {
this.foo++;
}
};
function baz(callback) {
callback();
}
baz(obj.bar); // does not alter obj
obj.bar(); // increments obj.foo successfully
console.log(obj.foo); // should be 2, not 1
なぜJavaScriptのオブジェクトは参照渡しされているので、これは、ありますか?またはthis
値 - - 機能のそれははない、それは定義さだ方法で、と呼ばれていますどのように基づいている状況があるため
ここをクリックしてください:http://stackoverflow.com/questions/3630054/how-do-i-pass-the-this-context-to-a-function – Dai