Node.js:构造函数中的“this” [duplicate]

Node.js: "this" inside a constructor function [duplicate]

提问人:Lucas Gomes 提问时间:9/20/2022 更新时间:9/20/2022 访问量:45

问:

在我读到的任何地方,人们都说函数内部的“this”是全局对象,函数外部的“this”是module.exports,箭头函数内部的“this”是空对象。

但它在实例化函数中并不完全一样,是吗?例如:

function Test() {
    this.arrowThis = () => {
        console.log(this)
    }

    console.log(this)
}

const test = new Test
console.log(test.arrowThis())

当函数被实例化时,“this”输出是函数本身,当调用 .arrowThis() 箭头函数时,输出是 2 个值,一个值是实例化函数,另一个是空对象。

我很难理解它背后的逻辑。 这里有人可以尝试解释在这种情况下“这个”的行为到底是什么吗?

JavaScript 节点 .js 这个

评论

0赞 evolutionxbox 9/20/2022
两者都是指实例。箭头函数没有自己的绑定。developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/......thistestthis
0赞 Bergi 9/20/2022
"我读到的任何地方,人们都说......”- 你似乎在错误的地方阅读。你能链接你的来源吗?
0赞 Bergi 9/20/2022
"当函数被实例化时,“this”输出是函数本身“ - 否。这是实例,而不是函数。“输出是 2 个值,一个值是实例化函数,另一个是空对象。”-不。第二个值是 ,调用的返回值。testTestundefinedtest.arrowThis()
0赞 Lucas Gomes 9/20/2022
感谢您澄清这部分,我是编程新手,我正在尝试理解“这个”逻辑。为什么有 2 个值作为输出,实例化对象加上未定义的值。
0赞 Bergi 9/20/2022
好吧,您的代码中有 3 个调用,这就是为什么您得到 3 个输出的原因......console.log

答: 暂无答案