生活随笔
收集整理的這篇文章主要介紹了
关于js中namespace命名空间模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
命名空間有助于減少程序中所需要的全局變量的數量,并且同時有助于避免命名沖突或過長的名字前綴。
關于命名空間的例子:
/**
* 創建全局對象MYAPP
* @module MYAPP
* @title MYAPP Global
*/
var MYAPP = MYAPP ||
{};/**
* 返回指定的命名空間,如果命名空間不存在則創建命名空間。
* 備注:命名時需小心,注意保留關鍵字,可能在一些瀏覽器無法使用。
*
* @method namespace
* @param {String *} 至少需要創建一個命名空間
* @return {Object} 最后一個命名空間創建的對象的引用
*/
MYAPP.namespace =
function(str){var parts = str.split("."
),parent =
MYAPP,i=0
,l=0
;if(parts[0]==="MYAPP"
){parts = parts.slice(1
);}for(i=0,l=parts.length; i<l;i++
){if(
typeof parent[parts[i]] === "undefined"
){parent[parts[i]] =
{};}parent =
parent[parts[i]];}return parent;
}/**
* bfun是Basic Functions Extended的縮寫
* 作用:包括數組、字符串等等數功能擴展
*
* @module bfun
*/
MYAPP.bfun =
{array:(function(){return {/*** @method isArray 判斷是否為數組* @param {Array} 數組* @return {Boolean} 真返回true,否則返回false*/isArray: function(){return Object.prototype.toString.call(arguments[0]) === '[object Array]'
; },/*** @method inArray 檢查值是否在數組中* @param {value,Array} 值,數組* @return {Boolean} 真返回true,否則返回undefined*/inArray: function(val,arr){for(
var i=0,l=arr.length;i<l;i++
){if(arr[i] ===
val){return true;}}}}})(),string:(function(){return {/*** @method trim 過濾字符串兩邊多余的空格* @param {String} 字符串* @return {String} 字符串*/trim: function(){return arguments[0].replace(/(^\s*)|(\s*$)/g, ""
);},/*** @method ltrim 過濾字符串左邊多余的空格* @param {String} 字符串* @return {String} 字符串*/ltrim: function(){return arguments[0].replace(/^s+/g, ""
);},/*** @method rtrim 過濾字符串右邊多余的空格* @param {String} 字符串* @return {String} 字符串*/rtrim: function(){return arguments[0].replace(/s+$/g, ""
);}}})()
}// 測試
MYAPP.test =
{init: function(){// 使用對應的模塊先引用var marray = MYAPP.namespace("MYAPP.bfun.array"
);var mstring = MYAPP.namespace("MYAPP.bfun.string"
);var arr = ["a","b"
];var str = " abc "
;console.log("判斷是否為數組:" +
marray.isArray(arr));console.log("值是否在數組中:" + marray.inArray("a"
,arr));console.log("過濾左右空格:" +
mstring.trim(str));}
}MYAPP.test.init(); ?
轉載于:https://www.cnblogs.com/kuikui/p/3190381.html
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的关于js中namespace命名空间模式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。