我今天刚开始使用require.js。我打算创建模块并成功创建模块。
现在我想对模块中的return函数进行递归调用。怎么做?
我的模块。
define(['jquery', 'underscore'], function ($, _) {
var thisModule = this;
return {
moduleFuntion: function (data) {
//Code
...
//How to call moduleFunction here.
}
}
});
我试过了
modelFunction();
和
thisModule.moduleFuntion();
我认为将代码拆分为另一个函数而不是return函数和递归工作的caling
define(['jquery', 'underscore'], function ($, _) {
var thisModule = this;
function codeFunction(data) {
//Code
....
codeFunction()
}
return {
moduleFuntion: function (data) {
codeFunction(data);
}
}
});
但是在我当前的代码中可能不是那样吗?
更新:
我已经通过
解决了问题define(['jquery', 'underscore'], function ($, _) {
return {
moduleFuntion: function (data) {
//Code
...
var moduleObject = require('jsonviewer');
moduleObject.moduleFuntion(dataNew);
}
}
});
这是正确的做法吗?
注意:我是新要求所以我希望得到专家对我采取的路径的意见
答案 0 :(得分:1)
实际上,
this.moduleFuntion();
应该这样做。
var thisModule = this;
由于您要将变量分配给要返回的对象之外,因此不起作用,因此不会指向该对象。
以下是一个非常简单的示例:http://jsfiddle.net/ePV2Q/
答案 1 :(得分:0)
我建议你阅读named function expressions。
define(['jquery', 'underscore'], function ($, _) {
var thisModule = this;
return {
moduleFuntion: function moduleFunc(data) { // give this function expression a name
//Code
...
//How to call moduleFunction here.
// Now you can call moduleFunction using moduleFunc:
moduleFunc(...);
}
}
});