如果函数上下文中不存在 alert 方法,js 从哪里获取?
正确显示
console.log(this.alert("1"));
如果我将警报作为对象方法输出,则会出现错误
const car = {
carNumber: "A123",
outputNumber: function () {
console.log(this.alert("1"));
console.log(this);
},
};
car.outputNumber();
如果我只显示警报而没有这个词,一切都会为我工作
const car = {
carNumber: "A123",
outputNumber: function () {
alert(1);
console.log(this);
},
};
问题:
alert函数是如何工作的,如果按照我的理解,它在全局上下文中,它为什么会起作用,如果没有全局上下文,编译器从哪里获取这个函数并运行它?是否有更多隐藏的上下文?
通过做
上下文
this是window。你window有功能吗alert执行时
那么
this它就是一个对象car。而汽车对象没有功能或方法alertalert如果您在对象内部声明一个方法car并在内部调用window.alert,它将起作用:您还可以使用箭头功能。箭头函数没有上下文,它们在全局范围内执行
当您在没有上下文的情况下调用函数时
alert,会触发全局函数alert( window.alert )