gpt4 book ai didi

javascript - 理解 javascript 中的 "this"时出现问题

转载 作者:行者123 更新时间:2023-12-02 16:43:12 25 4
gpt4 key购买 nike

我有以下功能。我正在阅读的 javascript 教程说它应该输出 2,但我在文本编辑器(JS Fiddle)中未定义。

可能是什么原因?这与严格模式与非严格模式有关系吗?

function foo(){
console.log( this.a );
}

var a = 2;

foo(); //should output "2" but I'm getting undefined. Why?

最佳答案

这是因为您正在 JSFiddle 创建的函数包装器中运行代码。默认为onLoad它将代码放入在加载事件上运行的函数中。

这使得a该函数的局部变量,而不是全局变量。当您尝试使用 this.a 访问它时它将在 window.a 中查找变量(因为 this 将指向 window 对象),但由于该变量不是全局变量,因此无法在那里找到它。

如果您选择No wrap - in <head>No wrap - in <body>对于放置代码的位置,您将得到 2作为输出。

关于javascript - 理解 javascript 中的 "this"时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com