我有两个JavaScript文件file1.js
和file2.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 reference
,而console.log
都会显示[object Object] {}
。
以下是取决于file1
的文件:
define(['file1'], function(myVar) {
var test = myVar.doSomething();
});
那么,这里有什么问题?似乎myVar
file2
答案 0 :(得分:1)
console.log显示
[object Object] {}
这很奇怪。您是否尝试过扩展视图?你应该能够看到你的方法。
我得
TypeError: Unable to get property 'doSomething' of undefined or null reference
那么,这里有什么问题?似乎myVar没有从file2正确返回?
没有。 1}}未从file1正确返回 - 实际上,根本没有返回任何内容!
myVar
您从第define('file1', ['file2'], function(myVar) {
console.log(myVar);
myVar.doSomething = function() {
return {
'test': 13
}
}
return myVar;
// ^^^^^^^^^^^^^
});
行(取决于文件1)收到错误,而不是来自文件1(取决于文件2)。