您好,登錄后才能下訂單哦!
這篇文章主要介紹“java的主體函數怎么設置”,在日常操作中,相信很多人在java的主體函數怎么設置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java的主體函數怎么設置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
下面是主體控制函數和一些公用方法。包括 拋異常,打日志。擴展,遍歷。設置方法模型路徑。獲取模型(之前必須設置才可以獲取不然拋異常)判斷(數據)。
修正
(function(window,undefined){ var_toString = {}.toString, _is, _writeScript, _listUrl, _scriptMap = { method_url : {},//method --> url <method : url ><1 : 1 > url_method : {},//url --> method <url : [method,method] ><1 : n > visited : {}, writted : {}, wait_write:[] }, _readyFnx = [], alfred = function(){//自己單獨使用也可以。象jquery alfred.ready.apply(window,arguments); }; //私有函數開始 _is = function(it,type){//復雜的可以自己進行設置。正則匹配。 returntype.test(_toString.call(it).toLowerCase()); }; _waitReady = function(){ //等結束。如果結束了。直接跳出循環。其實就是利用JS的這個特性。 if(document.readyState != "loaded" &&document.readyState != "complete") { vartime = setTimeout(arguments.callee,0); return; } clearTimeout(time); } _checkReady = function(){ //處理參數 for(vari=0;i<arguments.length;i++) { _readyFnx.push(arguments[i]); } varcallback = _readyFnx.shift(); //支持高級事件的 if(document.addEventListener) { document.addEventListener("DOMContentLoaded",function(){ _waitReady(); document.removeEventListener("DOMContentLoaded",arguments.callee,false); callback.apply(window,_readyFnx); }); returnthis; } //支持事件則用事件處理 IE if(document.attachEvent) { document.attachEvent( "onreadystatechange", function(){ _waitReady(); document.detachEvent( "onreadystatechange",arguments.callee); callback.apply(window,_readyFnx); }); returnthis; } //不支持的則看不在 iframe 下時候的特殊屬性。看 JSCRIPT MSDN。 if(document.documentElement.doScroll &&window == window.top) { try { document.documentElement.doScroll("left","top"); } catch(e) { setTimeout(arguments.callee, 0); return;} callback.apply(window,_readyFnx); returnthis; } }; _listUrl = function(){ varl = _scriptMap.visited,i; //對我們的URL 進行篩選 。主要防止多次添加訪問過的依賴庫。 for(i inl){ if(!_scriptMap.writted[i]) { _scriptMap.wait_write.push(i); } } _scriptMap.wait_write.reverse(); _writeScript(); }; _writeScript = function(){ //寫入我們的JS 了。 varhead = document.getElementsByTagName("head").item(0),len = _scriptMap.wait_write.length; for(vari;_scriptMap.wait_write.length&&(i=_scriptMap.wait_write.shift());) { varscript = document.createElement("script"), url = i || ""; script.setAttribute("async",true);//高級瀏覽器支持HTML5特性 script.setAttribute("type","text/javascript"); script.setAttribute("src",url); head.appendChild(script); _scriptMap.writted[url] = true;//這里無所謂,只要有這個URL就可以 }; }; alfred.extend = function(){ vardeep = false, len, options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1; len = arguments.length; if(!len) { returnthis; } if(alfred.isBoolean(target)) { deep = arguments[0]; to = arguments[1]; i = 2; } if(!(alfred.isObject(target) || alfred.isFunction(target))) { target = {}; } if(len = i) { target = this; --i; } for(;i<len;i++) { if((options=arguments[i])!==null) { for(name inoptions) { copy = options[name]; src = target[name]; if(src){throw"Becareful : you are rewrite the "+_handle+"."+name+"!"} if(copy===target) {continue} if(deep &© &&(alfred.isObject(copy) || (copyIsArray = alfred.isArray(copy)))) { if(copyIsArray) { copyIsArray = false; clone = src &&alfred.isArray(src) ? src : []; } else { clone = src &&alfred.isObject(src) ? src : []; } target[ name ] = alfred.extend( deep, clone, copy ); } elseif( copy !== undefined ) { target[name] = copy; } } } } }; alfred.isNumber = function(it){return_is(it,/^[object number]$/)}; alfred.isString = function(it){return_is(it,/^[object string]$/)}; alfred.isFunction = function(it){return_is(it,/^[object function]$/)}; alfred.isObject = function(it){return_is(it,/^[object object]$/)}; alfred.isArray = function(it){return_is(it,/^[object array]$/)}; alfred.isBoolean = function(it){returntypeofit ==='boolean'}; alfred.isDom = function(it){return_is(it,/^[object htmlw+]$/)}; alfred.extend({ author : "alfred", version : 1.01, global : window, doc : window.document, reset : function(it){alfred.global[it]=alfred;}, log : function() { if(window.console &&console.log) { returnconsole.log.apply(window,arguments) } }, error : function(name,value) { throw{"name":name,"message":value}; }, require : function(method) { varm2u = _scriptMap.method_url, u2m = _scriptMap.url_method, r; if(!(m2u[method])){throw"Error : you need setMethod first"} if(!_scriptMap.visited[m2u[method][0]] &&!_scriptMap.writted[m2u[method][0]]) { //haven't be visited or write _scriptMap.visited[m2u[method][0]] = true; //use an beautiful code in here for(; m2u[method][1].length &&(r=m2u[method][1].shift());) { alfred.require(r); } _listUrl(); } }, setMethod : function(url,method,rely) { vari, method = alfred.isArray(method)? method:[method], rely = alfred.isArray(rely)?rely:[rely]; if(url &&!_scriptMap.url_method[url]){ _scriptMap.url_method[url] = method; for(;method.length&&(i=method.shift());) { _scriptMap.method_url[i] = {"0" : url, "1" : rely}; } returnthis; } throw"Error : you are setMethod in an old method"; }, ready : function(){ _checkReady.apply(window,arguments); }, each : function(arg,callback){ for(vari inarg){ if(arg[i]) { callback.call(arg[i],i); } } returnarg; } }); window.alfred = alfred; })(window)
用的時候先引入這個文件。然后需要類似這樣設置
alfred.setMethod("basic.js",["alfred","alfred.global","alfred.doc","alfred.reset","alfred.log","alfred.isNumber", "alfred.isFunction","alfred.isArray","alfred.isObject","alfred.isString","alfred.isBoolean", "alfred.require","alfred.setMethod","alfred.extend"],[]);
這樣設置了以后就可以告訴下面的JS 我已經提供了這些方法。隨意alfred.require("alfred.reset"); 就可以把文件拉進頁面注冊好。
頁面內是這樣的。
<!DOCTYPE html> <html> <head> <title> </title> </head> <body> <script type="text/javascript" src="base.js"></script> <script type="text/javascript" src="deps.js"></script> <script type="text/javascript"> alfred.reset("$"); $.require("alfred.dom"); $(function(){ vara = $.dom("<div id='test' style='width:200px;height:200px;background:red;'> adf</div>"); $.dom("body").prepend(a); }) </script> </body> </html>
alfred.reset 是為了方便自己設置方法名字。這樣我們幾乎可以象jquery一樣使用了。
alfred.reset("$");
$.require("alfred.dom");
$.dom("div a span:first-child").append("hello alfred");
就 可以這樣用了。
到此,關于“java的主體函數怎么設置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。