摘要:直接上代碼在原型添加方法原始方法繼承工具報出異常異常文本信息原型擴展區(qū)數(shù)組的兼容性判斷原型操作異步加載異步加載的地址不正確異步加載異步加載的地址不正確下一個兄弟元素上一個兄弟元素本身后面的所有兄弟元素不包括本身本身前面的所有兄弟元素不包括
直接上代碼:
v1.4
; var Tool = (function(){ var def = { }; //在原型添加方法原始方法 Function.prototype.method = function(name,func){ if(!this.prototype[name]){ this.prototype[name] = func; } }; //繼承工具 function extendDeep() { var i, target = arguments[0] || {}, astr = "[object Array]", toStr = Object.prototype.toString, yArr = Array.prototype.slice.call(arguments, 1); for (i = 0, len = yArr.length; i < len; i++) { var temp = yArr[i]; for (var j in temp) { if (target.hasOwnProperty(j) && (target[i] === temp[i])) { continue; } if (temp.hasOwnProperty(j)) { if (typeof temp[j] === "object") { target[j] = (toStr.call(temp[j] === astr)) ? [] : {}; extendDeep(target[j], temp[j]); } else { if (typeof temp[j] !== "undefined") { target[j] = temp[j]; } } } } } return target; } /** * [showError 報出異常] * @param {[string]} str [異常文本信息] * @return {[type]} [description] */ function showError(str){ throw new Error(str); } /* 原型擴展區(qū) */ //數(shù)組的indexof Array.method("indexOf",function(item){ var i = 0, len = this.length; for(;i < len;i++){ if(this[i] === item){ return i; } } return -1; }) //兼容性判斷forEach Array.method("forEach",function(callback){ if(this.forEach){ this.forEach(function(item){ callback(item); }) }else { for(var i =0,len=this.length;i-1; }, //在參數(shù)1中刪除參數(shù)2指定位的元素返回布爾 removeAt : function(target,index){ return !!target.splice(index,1).length; }, //在參數(shù)1中刪除參數(shù)2返回布爾 remove : function(target,item){ var index = target.indexOf(item); return index > -1 ? this.removeAt(target,index) : false; }, //打亂數(shù)組返回新數(shù)組 shuffle : function(target){ var temp = target, j, x, i = target.length; for(;i>0;j = parseInt(Math.random()*i),x = target[--i],target[i] = target[j],target[j] = x){ } return temp; //target.sort(function(){return 0.5 - Math.random()}); }, //在數(shù)組中隨機取一個 random : function(target){ return target[Math.floor(Math.random() * target.length)]; }, // 數(shù)組去重 unique : function(target){ var temp = []; _that: for(var i = 0,len = target.length;i < len;i ++){ for(var j = i + 1;j < len;j++){ if(target[i] === target[j]){ continue _that; } } temp.push(target[i]) } return temp; }, //去除數(shù)組中的undefined和Null compact : function(target){ if(!type.isArray(target)){ throw new Error("target error type"); } return target.filter(function(item){ return item != undefined; }) }, //獲取數(shù)組對象中的屬性值,組合成新數(shù)組 pluck : function(target,name){ var result = [], temp; target.forEach(function(item){ temp = item[name]; if(temp != null){ result.push(temp); } }); return result; }, //2個數(shù)組的并集 union : function(t1,t2){ return this.unique(t1.concat(t2)); }, // 取2個數(shù)組的交集 intersect : function(t1,t2){ return t1.filter(function(item){ return ~t2.indexOf(item); }); }, //取差集 diff : function(t1,t2){ var r = t1; for(var i=0;i =0;i--){ if(/S/.test(str.charAt(i))){ str = str.slice(0,i + 1); break; } } return str; }, // 模仿C語言print方法 print : function(str,object){ var arr = [].slice.call(arguments,1), index; return str.replace(/#{([^{}]+)}/gm,function(match,name){ index = Number(name); if(index >= 0){ return arr[index]; } if(object && object[name] !== ""){ return object[name]; } return ""; }) }, //補零 fillZero :function(target,n){ var z = new Array(n).join("0"), str = z + target, result = str.slice(-n); return result; //return (Math.pow(10,n) + "" + target).slice(-n); }, // 去掉script內(nèi)部的html標簽 stripTags : function(target){ if(type.getType(target) === "String"){ return target.replace(//img,"").replace(/<[^>]+>/g,""); } }, //首字母大寫 capitalize : function(target){ return target.charAt(0).toUpperCase() + target.slice(1).toLowerCase(); }, //把字符串中的_轉(zhuǎn)成- dasherize : function(target){ return this.underscored(target).replace(/_/g,"-"); }, // 把駝峰轉(zhuǎn)換成_ underscored : function(target){ return target.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase(); }, //_ - 轉(zhuǎn)駝峰命名 camelize: function(target) { if (target.indexOf("-") < 0 && target.indexOf("_") < 0) { return target; } return target.replace(/[-_][^-_]/g, function(match) { console.log(match) return match.charAt(1).toUpperCase(); }) }, //字符串截斷方法 目標 長度默認30,截斷后符號默認... truncate: function(target, len, truncation) { len = len || 30; truncation = truncation ? truncation : "..."; return (target.length > len) ? target.slice(0, (len - truncation.length)) + truncation : target.toString(); }, //獲得字符串字節(jié)長度 參數(shù)2 utf-8 utf8 utf-16 utf16 byteLen: function(str, charset) { var target = 0, charCode, i, len; charset = charset ? charset.toLowerCase() : ""; if (charset === "utf-16" || charset === "utf16") { for (i = 0, len = str.length; i < len; i++) { charCode = str.charCodeAt(i); if (charCode <= 0xffff) { target += 2; } else { target += 4; } } } else { for (i = 0, len = str.length; i < len; i++) { charCode = str.charCodeAt(i); if (charCode <= 0x007f) { target += 1; } else if (charCode <= 0x07ff) { target += 2; } else if (charCode <= 0xffff) { target += 3; } else { target += 4; } } } return target; }, //重復(fù)item,times次 repeat: function(item, times) { var s = item, target = ""; while (times > 0) { if (times % 2 == 1) { target += s; } if (times == 1) { break; } s += s; times = times >> 1; } return target; //retrun new Array(times).join(item) }, //參2是參1的結(jié)尾么?參數(shù)3忽略大小寫 endsWith: function(target, item, ignorecase) { var str = target.slice(-(item.length)); return ignorecase ? str.toLowerCase() === item.toLowerCase() : str === item; }, //參數(shù)2是參數(shù)1的開頭么?參數(shù)3忽略大小寫 startsWith: function(target, item, ignorecase) { var str = target.slice(0, item.length); return ignorecase ? str.toLowerCase() === item.toLowerCase() : str === item; }, // 類名中,參數(shù)1 是否包含參數(shù)2,類名中的分隔符 containsClass: function(target, item, separator) { return separator ? (separator + target + separator).indexOf(separator + item + separator) > -1 : this.contains(target, item); }, //判定一個字符串是否包含另一個字符串 contains: function(target, item) { return target.indexOf(item) != -1; //return target.indexOf(item) > -1; } }; // 數(shù)字擴展 var num = {}; // 類型擴展 var type = { getType : function(ele){ if(!ele)return undefined; if(window == document && document != window){ return "window"; }else if(ele.nodeType === 9){ return "document"; }else if(ele.callee){ return "arguments"; }else if(isFinite(ele.length) && ele.item){ return "nodeList"; } else { var temp = Object.prototype.toString.call(ele), reg = /[object (.*)]/, arr = reg.exec(temp); return arr[1].toLowerCase(); } }, isArray : function(ele){ return (this.getType(ele) === "array") ? true : false; }, isFunction : function(ele){ return (this.getType(ele) === "function") ? true : false; }, isObject : function(ele){ return (this.getType(ele) === "object") ? true : false; }, isString : function(ele){ return (this.getType(ele) === "string") ? true : false; }, isNumber : function(ele){ return (this.getType(ele) === "number") ? true : false; }, isBoolen : function(ele){ return (this.getType(ele) === "boolean") ? true : false; }, isUndefined : function(ele){ return (this.getType(ele) === "undefined") ? true : false; }, isNull : function(ele){ return (this.getType(ele) === "null") ? true : false; } }; // 時間擴展 var time = {}; // 獲取擴展 var get = {}; //樣式相關(guān) var css = {}; // cookie相關(guān) var cookie = {}; //瀏覽器判斷 var os = {} //靜態(tài)對照表數(shù)組 var objArr = [["dom","arr","str","num","type","time","get","cookie"],[dom,arr,str,num,type,time,get,cookie]] //模塊的按需加載 var config = { //加載模塊 init :function(name){ if(name === undefined){ for(var i=0,len=objArr[0].length;i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85452.html
摘要:之前一直看阿里云的視屏教程,雖然說還是很不錯,但是很麻煩進行一鍵安裝環(huán)境的時候會有兩個數(shù)據(jù)配置文件和。用服務(wù)器管理員賬號在上登陸服務(wù)器本案例使用系統(tǒng)。然后點擊工具欄上的圖標,彈出命令窗已經(jīng)登上了服務(wù)器。解壓剛剛下載的文件圖二輸入。 之前一直看阿里云的視屏教程,雖然說還是很不錯,但是很麻煩;進行一鍵安裝web環(huán)境的時候會有兩個數(shù)據(jù)配置文件etc/my.cnf和etc/mysql/my.c...
摘要:一個簡單的輸出工具,只需簡單配置,即可將接口中的所有接口及參數(shù)全部以結(jié)構(gòu)化的方式輸出的頁面上。新增支持文件類型的數(shù)據(jù)。優(yōu)化了返回結(jié)果格式化的問題。改版了界面列表展示部分,修復(fù)了掃描不到的情況。增加了對的支持支持上傳文件。 spring.boot.sapi.starter 一個簡單的API輸出工具,只需簡單配置,即可將接口中的所有API接口及參數(shù)全部以結(jié)構(gòu)化的方式輸出的頁面上。基于Spr...
摘要:漏洞披露后,在第一時間發(fā)布了,用戶可升級到此版本以修復(fù)該漏洞。年年底被爆出的首個嚴重安全漏洞,就是由聯(lián)合創(chuàng)始人及首席架構(gòu)師發(fā)現(xiàn)的。年月被爆出儀表盤和外部代理安全漏洞時,也是第一時間向用戶響應(yīng),確保所有和的用戶都完全不被漏洞影響。 runC是一個根據(jù)OCI(Open Container Initiative)標準創(chuàng)建并運行容器的CLI工具,目前Docker引擎內(nèi)部也是基于runc構(gòu)建的。...
閱讀 1715·2021-09-22 10:02
閱讀 1941·2021-09-02 15:40
閱讀 2844·2019-08-30 15:55
閱讀 2252·2019-08-30 15:44
閱讀 3600·2019-08-30 13:18
閱讀 3231·2019-08-30 11:00
閱讀 1952·2019-08-29 16:57
閱讀 570·2019-08-29 16:41