我学习“这个” JS中的窗口时,我有以下代码:为什么上下文是使用“this”关键字在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
窗口
我明白为什么上下文我因此,为什么当我呼叫回调的上下文是窗口而不是person2?
因为'this'值由函数是如何确定所谓'.. callbackFunction'被称为无任何上下文,因此全球('window')返回...... – Rayon
嗨人造丝, 什么我不不明白为什么没有上下文?当person 2是上下文时,我称之为“printName”,为什么当我从“printName”中调用callbackFunction时,上下文不会保留person2? – RiskX
正如我所评论的答案 - _“它们很重要,它们是如何被调用的,而不是它们如何通过......”_ _ _ ['this'](https://developer.mozilla.org/en/docs/Web/ JavaScript/Reference/Operators/this)___ – Rayon