

 代码如下:
/**
 * 加载js文件
 * @param {string || array} url js路径
 * @param {Function} fn 加载完成后回调
 * @return {object} game对象
 * @example
 * getScript("url.js",fn)
 * getScript(["url-1.js","url-2.js"],fn)
 */
game.getScript = (function() {
 var cache = {};//内部缓存下url,下次则不请求
 return function(url, fn) {
 if ("string" === typeof(url)) {
 url = [url]; //如果不是数组带个套
 };
 var i = 0,//循环起
 ok = 0,//加载成功几个js
 len = url.length,//一共几个js
 head = document.getElementsByTagName("head")[0],
 js, _url,
 create = function(url) {//创建js
 js = document.createElement("script");
 js.type = "text/javascript";
 js.src = url;
 head.appendChild(js);
 return js;
 };
 for (; i < len;) {
 if (cache[encodeURIComponent((_url = url[i++]))]) {//如果加载过
 (++ok >= len && fn) && fn();//如果加载完所有的js则执行回调
 continue;
 }
 cache[encodeURIComponent(_url)] = !0;//设置缓存
 js = create(_url);//创建js
 fn && (js.onload = function() {
 if (++ok >= len) {//如果加载完所有的js则执行回调
 fn();
 }
 });
 };
 head = js = _url = create = null;
 return this;
 }
})();
 
