gpt4 book ai didi

javascript - 导入自动调用函数将 this 绑定(bind)到 window 对象

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:53 32 4
gpt4 key购买 nike

在 Jest 测试中,我需要导入一个声明一些全局函数的 JavaScript 模块。这个 javascript 模块是从 django (ex jsi18n) 自动生成的,它是一个自动调用函数

(function(globals) {
var django = globals.django || (globals.django = {});
...
}(this));

这对于在 React 组件内使用翻译很有帮助。例如,使用全局定义的函数 gettext()

在我们的 .jsx 文件中包含翻译字符串
<p>{ gettext('got it') }</p>

我尝试使用标准形式导入模块

import './djangojs';

但是开 Jest 报告错误

TypeError: Cannot read property 'django' of undefined

因为this它是未定义的(严格模式)。因此,我尝试手动编辑模块并在末尾添加 }(this || window)); 并正常工作。但该模块每次都是自动生成的。那么如何将 this 绑定(bind)到 window 以使用全局对象而无需手动编辑文件呢?

最佳答案

解决方案:

我直接使用 setupFiles 导入了 django javascript 模块正如@dfsq所说

"setupFiles": [
"<rootDir>/path/to/jsi18n/djangojs.js",
"<rootDir>/path/to/js/reverse.js"
],

关于javascript - 导入自动调用函数将 this 绑定(bind)到 window 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49666853/

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