が、私は「この」ではJSについて学んだJavaScriptで「この」キーワードを使用してウィンドウがあると私は次のコードを持っている理由:コンテキストが
var person1 = {
firstName: "John",
lastName: "Snow",
printName: function(){
console.log(this);
}
}
var person2 = {
firstName: "Aria",
lastName: "Stark",
printName: function(callbackFunction){
console.log(this);
callbackFunction();
}
}
person1.printName();
person2.printName(person1.printName);
このコードの出力を示します。
PERSON1
PERSON2
ウィンドウ
私はなぜコンテキスト私を理解しそれに応じてperson1とperson2がコールバックを呼び出すとコンテキストがwindowでperson2ではないのはなぜですか?
this' 'の値は、関数が呼び出された方法によって決定されるため。..' callbackFunction'は、任意の文脈なしで呼び出されるので、グローバル( 'window')は「私はドン何... – Rayon
こんにちはレーヨン、 返されます理由は理解できないのですか?人2がコンテキストだったので「printName」と呼ばれました。なぜなら、「printName」内からcallbackFunctionを呼び出すと、コンテキストはperson2のままになりませんか? – RiskX
私は答えにコメントしました - _ "どうやって呼び出されたのか、どのように渡されるのか..." _参照[___](https://developer.mozilla.org/en/docs/Web/ JavaScript/Reference/Operators/this)___ – Rayon