requirejs中非amd的调用函数
Calling function of non amd in requirejs
我已经阅读了这个 question & 我想更清楚地理解这个概念所以我创建了我的两个文件
lorem.js
:
var lorem = {};
lorem.fun1 = function(){
console.log('aaa');
};
ipsum.js
:
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)
在控制台中打印 undefined
。我做错了什么?
你的错误在 shim 配置中。
ipsum : {
deps : ['lorem'],
exports : 'Ipsum'
}
应该是
ipsum : {
deps : ['lorem'],
exports : 'ipsum'
}
注意大小写从 'Ipsum'
更改为 'ipsum'
。
ipsum
应该是ipsum.js
中的全局变量。
在Javascript中,变量名是区分大小写的,所以ipsum
和Ipsum
是不同的。因为你没有定义 Ipsum
,只定义了 ipsum
,打印出来的是 undefined
.
我已经阅读了这个 question & 我想更清楚地理解这个概念所以我创建了我的两个文件
lorem.js
:
var lorem = {};
lorem.fun1 = function(){
console.log('aaa');
};
ipsum.js
:
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)
在控制台中打印 undefined
。我做错了什么?
你的错误在 shim 配置中。
ipsum : {
deps : ['lorem'],
exports : 'Ipsum'
}
应该是
ipsum : {
deps : ['lorem'],
exports : 'ipsum'
}
注意大小写从 'Ipsum'
更改为 'ipsum'
。
ipsum
应该是ipsum.js
中的全局变量。
在Javascript中,变量名是区分大小写的,所以ipsum
和Ipsum
是不同的。因为你没有定义 Ipsum
,只定义了 ipsum
,打印出来的是 undefined
.