Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript requirejs中非amd的调用函数_Javascript_Requirejs_Shim - Fatal编程技术网

Javascript requirejs中非amd的调用函数

Javascript requirejs中非amd的调用函数,javascript,requirejs,shim,Javascript,Requirejs,Shim,我已经读过了&我想更清楚地理解这个概念,所以我创建了两个文件 lorem.js: var lorem = {}; lorem.fun1 = function(){ console.log('aaa'); }; var ipsum = {}; ipsum.color = 'a'; ipsum.fun1 = function(){ lorem.fun1(); }; ipsum.js: var lorem = {}; lorem.fun1 = function(){

我已经读过了&我想更清楚地理解这个概念,所以我创建了两个文件

lorem.js

var lorem = {};

lorem.fun1 = function(){
    console.log('aaa');
};
var ipsum = {};
ipsum.color = 'a';

ipsum.fun1 = function(){
    lorem.fun1();
};
ipsum.js

var lorem = {};

lorem.fun1 = function(){
    console.log('aaa');
};
var ipsum = {};
ipsum.color = 'a';

ipsum.fun1 = function(){
    lorem.fun1();
};
Ipsum依赖于lorem。在垫片配置中,我做了如下操作:

// Filename: main.js

// Require.js allows us to configure shortcut alias
// There usage will become more apparent further along in the tutorial.
require.config({
    baseUrl: 'js',
    paths: {
        /*jquery: [
            // 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min' ,
            'libs/jquery/jquery'
        ],
        backbone:[
            'libs/backbone/backbone'
        ],
        underscore:[
            'libs/underscore/underscore'
        ],*/
        ipsum: 'nonamd/ipsum',
        lorem: 'nonamd/lorem'
    },
    shim : {
        /*jquery : {
            exports : 'jQuery'
        },
        underscore : {
            exports : '_'
        },
        backbone : {
            deps : ['jquery', 'underscore'],
            exports : 'Backbone'
        },*/
        ipsum : {
            deps : ['lorem'],
            exports : 'Ipsum'
        }
    }

});

require(['ipsum'],function (Ipsum) {
    console.log(Ipsum);
});

但是,
console.log(Ipsum)
在控制台中打印
未定义的
。我做错了什么?

您的错误在垫片配置中

  ipsum : {
            deps : ['lorem'],
            exports : 'Ipsum'
        }
应该是

  ipsum : {
            deps : ['lorem'],
            exports : 'ipsum'
        }
注意大小写从
'Ipsum'
更改为
'Ipsum'

ipsum
应该是
ipsum.js
中的全局变量

在Javascript中,变量名区分大小写,因此
ipsum
ipsum
是不同的。因为您没有定义
Ipsum
,只有
Ipsum
,所以打印时会打印
未定义的