var callback = require(['xxxx/xxx']), callback的值是什么?

发布于 2022-09-02 00:46:19 字数 942 浏览 8 评论 0

已经对require进行了简单的配置,定义了main js

现在在一个js文件里定义如下

define(function(require){
    var $ = require('jquery');
    return {
        fun1:function(){
            //TODO Something.
        },
        fun2:function(){
            //TODO Something.
        }
    }
})

我在想如果用require导入这个js,并将这个赋给一个变量

var callback = require(['xxxx/xxx']);

这样在页面某个地方调用这个js里的search

callback.fun1();

<button onclick="callback.fun2();"></button >

但是现实中得到的callback却是如下结果:

function e(c,d,g){var m,p;n.enableBuildCallback&&d&&L(d)&&(d.__requireJsBuild=!0);if("string"===typeof c){if(L(d))return B(G("requireargs","Invalid require call"),g);if(a&&w(S,c))return S[c](t[a.id]);

返回的是require.js里的makeRequire,想问一下为什么会返回这个呢?
还有个问题是关于requireJS的运行机制是什么呢?
如果有相关requireJS的教程或者资源,希望能分享一下,项目需要,正在学习中,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

粉红×色少女 2022-09-09 00:46:19

你这个写法是不符合模块化规范的,在define函数里,你应该这样写

define(function(require, exports, module){
    var $ = require('jquery');
    module.exports = {
        fun1:function(){
            //TODO Something.
        },
        fun2:function(){
            //TODO Something.
        }
    }
})
小巷里的女流氓 2022-09-09 00:46:19

首先谢谢大家的回答!

不过我已经解决了,从这里找到的灵感JS模块化工具requireJS|菜鸟教程

里面有说:

通过define函数定义了一个模块,然后再页面中使用:

require(["js/a"]);

来加载该模块(注意require中的依赖是一个数组,即使只有一个依赖,你也必须使用数组来定义),requir API的第二个参数是callback,一个function,是用来处理加载完毕后的逻辑

这样我就想到是否可以在callback方法中来进行赋值呢?

于是我修改了我的代码:

var callback = {};
require(['js/a'],function(a){
    callback = a;
});

callback.fun1();
callback.fun2();

得到了想要的结果!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文