RequireJS 介绍说一个JS文件里只能放一个Define,这个众所周知,不提。
关于Define,它需要有一个返回值/对象,且只能有一个返回值/对象,这一点却是好多帖子没有提到的,但又非常重要的,一不留神就会报错。
别的不说了,上代码:
1. require.htm代码如下:
require.config({ paths: { jquery: 'jquery-1.7.2' }});require(["lzd"], function (returnValue) { returnValue.lzd123("asdf"); alert(returnValue.userName);});
3. lzd.js代码如下:
define(function () { function lzd123(msg) { alert("lzd1" + msg); }; function lzd456(msg) { alert("lzd1sdfasdfasdf" + msg); }; var returnVar = { userName: "111", lzd456: lzd456, lzd123: lzd123 } return returnVar; });
要想在main.js里能随意调用lzd.js中的lzd123或lzd456方法,就需要把他们糅合到一个对象里给返回去,细想一下,返回的对象里有方法,有属性可以使用,这就是所谓的模块化吧!
参考帖子: