【发布时间】:2020-04-21 12:49:02
【问题描述】:
我在 javascript 中有以下代码块:
const obj = {
name: "sri1",
func1: function() {
const name = "sri2"
function a() {
console.log(this.name)
}
a();
}
}
obj.func1();
为什么我没有得到关于 this 关键字的任何 console.log 状态?我真的很困惑,它既不是 obj 也不是 undefined 也不是 window 对象
【问题讨论】:
-
做类似
a.bind(this)(); -
"忽略 HTML 部分" ...如果 HTML 不相关,请不要将其包含在您的示例中!这次我会为你编辑问题。另请参阅stackoverflow.com/help/minimal-reproducible-example
-
我知道绑定存在,但为什么我没有得到任何输出,甚至没有错误!
-
好的,很抱歉添加了 html 部分
-
好的,我把它编辑成一个可运行的sn-p。我认为它似乎确实产生了输出,尽管不是您期望的值。您可能需要阅读函数中
this的范围,尤其是嵌套函数(或有时称为“闭包”)。你可以从这里开始:stackoverflow.com/questions/346015/javascript-closures-and-this
标签: javascript this