このjson構造がある場合:
var j = {
param1: 'hello',
param2: 'world',
func: function() {
console.log(this.param1 + ' ' + this.param2);
}
};
thisinfuncは定義されていません。このjsonオブジェクトでselfにアクセスするには? ありがとう
編集:
私はそれを試しています:
j.func();
このjson構造がある場合:
var j = {
param1: 'hello',
param2: 'world',
func: function() {
console.log(this.param1 + ' ' + this.param2);
}
};
thisinfuncは定義されていません。このjsonオブジェクトでselfにアクセスするには? ありがとう
編集:
私はそれを試しています:
j.func();
this関数がどのように呼び出されるかによって決まります。あなたの質問に答えるには、あなたがどのように呼ばれているかを確認する必要がありますfunc()。
電話をかける場合:
j.func()
次に、thisinsideはfuncに設定されjます。
直接呼び出す場合func()(これは、コールバックとして渡さj.funcれ、その後、他の関数によって直接呼び出される場合に発生します)、thisおそらく、どちらかに設定されるかwindow、undefined厳密モードであるかどうかによって異なります。例えば:
function callme(callback) {
// the context of `j` will be lost here and
// this will just call func() directly without setting this to j
callback();
}
callme(j.func);
thisj.func.apply()またはを使用して呼び出し元が明示的に設定することもできます。j.func.call()これにより、呼び出し元は。の目的の値を指定できますthis。
j.func()を呼び出すだけで、func の this は j を参照します。