gpt4 book ai didi

javascript - module.export 行为奇怪

转载 作者:行者123 更新时间:2023-12-03 07:25:11 29 4
gpt4 key购买 nike

module.exports 存在令人惊讶的行为。代码如下:

module.exports = { test: 4};
module.exports.testMe = () => {console.log(this.test);};

将输出未定义。但是:

module.exports.test = 4;
module.exports.testMe = () => {console.log(this.test);};

将输出4。为什么它的行为不同?

最佳答案

原因与箭头函数的工作方式有关,它们绑定(bind)到 this (就像您使用 .testMe = fn.bind(this); 一样) .

在第一种情况下,您将覆盖 module.exports,但 this 仍然指向旧对象。因此,当 testMe() 隐式绑定(bind)到 this 时,您会得到 undefined,因为没有 test 属性原始module.exports

在第二种情况下,您不会覆盖module.exports,因此module.exports === this testMe() 隐式绑定(bind)到 this 并按预期输出“4”,因为两者都指向同一个对象,其中 test 存在。

关于javascript - module.export 行为奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36031953/

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