gpt4 book ai didi

javascript - 试图在 javascript 中理解 `this`

转载 作者:行者123 更新时间:2023-11-29 18:10:30 25 4
gpt4 key购买 nike

我有一个具有许多功能的对象:

var someScopeScopedObject = {
myFunction1: function () {
console.log('foo');
},

myFunction2: function () {
this.myFunction1();
}

init: function (callback) {
callback();
}
}

所以如果我调用 someScopeScopedObject.myFunction2 就可以了

但是如果我执行 someScopScopedObject.init(someScopScopedObject.myFunction2) 然后我得到一个错误 this.myFunction1 is undefined

为什么当我以这种方式调用函数时 this 无效?

最佳答案

关键字this 指的是函数作用域。不是全局范围。您声明了一个名为 myFunction2 的函数,this 指的是该函数的作用域,而不是声明该函数的作用域。

它不像在 C# 等语言中,this 指的是类的当前实例,无论您是在另一个方法中。

关于javascript - 试图在 javascript 中理解 `this`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818620/

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