如何获取javascript文件的对象(句柄)?

如何获取javascript文件的对象(句柄)?,javascript,requirejs,Javascript,Requirejs,我使用的是requireJS,我有两个文件(app、js和file1.js)。我需要使用require()在app.js中实例化file1.js,然后从app.js调用file1.js中的函数。我该怎么做 app.js file1.js 但是在这里,加载“load_function()”时没有被调用。我使用“var file1”作为句柄的方式有错误 有没有办法从“app.js”中获取“file1.js”的句柄 如何防止函数在未被调用的情况下加载(执行)?您的app.js文件中没有错误。行var

我使用的是requireJS,我有两个文件(app、js和file1.js)。我需要使用require()在app.js中实例化file1.js,然后从app.js调用file1.js中的函数。我该怎么做

app.js

file1.js

但是在这里,加载“load_function()”时没有被调用。我使用“var file1”作为句柄的方式有错误

有没有办法从“app.js”中获取“file1.js”的句柄


如何防止函数在未被调用的情况下加载(执行)?

您的
app.js
文件中没有错误。行
var file1=require('file1.js')
加载模块
file1.js
并将其绑定到局部变量
file1
。然后可以调用
file1.load\u function()

您需要导出您的函数:

define(function (require, exports, module) {
    var load_function = function(){
        //Some logic
    }
    exports.load_function = load_function;
});

顺便说一句,您不应该在模块名称中添加
.js
扩展名,因此请将名为
file1.js
的文件中的模块称为
file1

我想您已经接近了,您需要检查语法并对其进行修改。您应该将file1命名为app的依赖项,并在app require的回调中使用file1的胆量。简而言之,找到一个基本嵌套require调用的现有工作示例,并修改文件名和函数名以适合您的代码。使用导出是否可以从app.js中获得句柄?。“file1”是我为这个问题给出的名称,实际的模块有一个合适的名称:)好的,那么我已经删除了这个注释。我觉得你所做的一切都很好。实际上,您正在使用
var file1=require('file1.js')加载
file1
调用
load\u函数时,它不起作用,因为您没有导出它。当我删除“.js”时,会出现一个错误。现在不是主要的问题:)您可能在其他地方有一个错误,
.js
会取消该错误。这是两个错误相互抵消的情况。在模块名称末尾添加
.js
,将更改RequireJS解析名称的方式。
define([], function(){
    var load_function = function(){
        //Some logic
    }
}
define(function (require, exports, module) {
    var load_function = function(){
        //Some logic
    }
    exports.load_function = load_function;
});