gpt4 book ai didi

javascript - RequireJS:定义模块 - TypeError:无法获取未定义或空引用的属性

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

我有两个 JavaScript 文件 file1.jsfile2.js,我想从中创建模块以便与 RequireJS 一起使用。

file1.js

define('file1', ['file2'], function(myVar) {
console.log(myVar);

myVar.doSomething = function() {
return {
'test': 13
}
}
});

如您所见,存在对 file2.js 的依赖关系,我需要获取 myVar。在这里您可以看到 file2 以及我在该文件中执行的操作的代码片段。

file2.js

define('file2', ['someOtherDep'], function(someVarFromSomeOtherDep) {
var myVar = (function() {
var test = someVarFromSomeOtherDep.test.a;

var doIt = function(var1) {
// …
return x;
};

return {
doIt: doIt
}
}());
console.log(myVar);
return myVar;
});

如果我使用 file1 作为依赖项并调用 myVar.doSomething(),我会收到 TypeError: Unable to get property 'doSomething' of undefined or null引用console.log 显示 [object Object] {}

这是依赖于file1的文件:

define(['file1'], function(myVar) {
var test = myVar.doSomething();
});

那么,这里出了什么问题?似乎 myVar 没有从 file2 正确返回?

最佳答案

both console.log shows [object Object] {}

这很奇怪。你尝试过扩大视野吗?您应该能够看到您的方法。

I get TypeError: Unable to get property 'doSomething' of undefined or null reference So, what's wrong here? It seems that myVar is not returned correctly from file2?

没有。 myVar 未从 file1 正确返回 - 事实上,根本没有返回任何内容!

define('file1', ['file2'], function(myVar) {
console.log(myVar);

myVar.doSomething = function() {
return {
'test': 13
}
}
return myVar;
// ^^^^^^^^^^^^^
});

您从 var test = myVar.doSomething(); 行(取决于文件 1)收到错误,而不是从文件 1(取决于文件 2)收到错误。

关于javascript - RequireJS:定义模块 - TypeError:无法获取未定义或空引用的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999890/

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