您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

node.js模块和功能中“ this”的含义

node.js模块和功能中“ this”的含义

您必须了解以下一些基本事实才能弄清情况:

在Node模块的顶级代码中,this等效于module.exports。那是您看到的空对象。

当您使用this一个函数内,价值this就是重新确定之前, 每个执行功能,并且它的值由下式确定_如何_执行该功能。这意味着this如果调用机制不同(例如aFunction()vs. aFunction.call(newThis)vs. emitter.addEventListener("someEvent", aFunction);等),则完全相同的函数对象的两次调用可能具有不同的值。在您的情况下,aFunction()在非严格模式下运行this设置为全局对象的函数

当将JavaScript文件require作为Node模块时,Node引擎在包装函数内部运行模块代码。该模块包装函数this设置为module.exports。(回想一下,函数可以使用任意this值运行。)

因此,您将获得不同的this值,因为每个值都this驻留在不同的函数内:第一个位于Node创建的module-wrapper函数内部,而第二个位于中aFunction

Node 2022/1/1 18:14:26 有455人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶