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
,所以打印时会打印未定义的