“this”在logColor函数中给出myCar对象引用但是在func函数内部给出了窗口对象引用的原因?
var myCar = {
color: "Blue",
logColor: function() {
var self = this;
console.log("In logColor - this.color: " + this.color);
console.log("In logColor - self.color: " + self.color);
var func=function() {
console.log("In IIFE - this.color: " + this.color);
console.log("In IIFE - self.color: " + self.color);
}
func();
}
};
myCar.logColor();
这可能对专家javascript开发者没有意义,但我的基础知识非常动摇
答案 0 :(得分:1)
您可以使用 ES-6粗箭头符号完成任务。发生这种情况是因为在对象此的闭包内始终指向全局范围。
var myCar = {
color: "Blue",
logColor: function() {
var self = this;
console.log("In logColor - this.color: " + this.color);
console.log("In logColor - self.color: " + self.color);
var func=() => {
console.log("In IIFE - this.color: " + this.color);
console.log("In IIFE - self.color: " + self.color);
}
func();
}
}