JS沙箱模式實(shí)例分析
本文實(shí)例講述了JS沙箱模式。分享給大家供大家參考,具體如下:
//SandBox(['module1,module2'],function(box){}); /* * * * @function * @constructor * @param [] array 模塊名數(shù)組 * @param callback function 回調(diào)函數(shù) * 功能:新建一塊可用于模塊運(yùn)行的環(huán)境(沙箱),自己的代碼放在回調(diào)函數(shù)里,且不會(huì)對(duì)其他的個(gè)人沙箱造成影響 和js模塊模式配合的天衣無縫 * * */ function SandBox() { //私有的變量 var args = Array.prototype.slice.call(arguments), callback = args.pop(), //模塊可以作為一個(gè)數(shù)組傳遞,或作為單獨(dú)的參數(shù)傳遞 modules = (args && typeof args[0] == "string") ? args : args[0]; //確保該函數(shù)作為構(gòu)造函數(shù)調(diào)用 if (!(this instanceof SandBox)) { return new SandBox(modules,callback); } //不指定模塊名和“*”都表示“使用所有模塊” if (!modules || modules[0] === "*") { for(value in SandBox.modules){ modules.push(value); } } //初始化所需要的模塊(將想要的模塊方法添加到box對(duì)象上) for (var i = 0; i < modules.length; i++) { SandBox.modules[modules[i]](this); } //自己的代碼寫在回調(diào)函數(shù)里,this就是擁有指定模塊功能的box對(duì)象 callback(this); } SandBox.prototype={ name:"My Application", version:"1.0", getName:function() { return this.name; } }; /* * 預(yù)定義的模塊 * * */ SandBox.modules={}; SandBox.modules.event=function(box){ //私有屬性 var xx="xxx"; //公共方法 box.attachEvent=function(){ console.log("modules:event------API:attachEvent") }; box.dettachEvent=function(){ }; } SandBox.modules.ajax=function(box) { var xx = "xxx"; box.makeRequest = function () { }; box.getResponse = function () { }; } SandBox(['event','ajax'],function(box){ box.attachEvent(); })
運(yùn)行效果截圖:
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript獲取網(wǎng)頁中第一個(gè)鏈接ID的方法
這篇文章主要介紹了JavaScript獲取網(wǎng)頁中第一個(gè)鏈接ID的方法,涉及javascript中document.links方法的使用,需要的朋友可以參考下2015-04-04MATLAB中ismissing函數(shù)用法小結(jié)
這篇文章主要介紹了MATLAB中ismissing函數(shù)用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09BootStrap智能表單實(shí)戰(zhàn)系列(九)表單圖片上傳的支持
這篇文章主要介紹了BootStrap智能表單實(shí)戰(zhàn)系列(九)表單圖片上傳的支持,介紹如何在生成表單后,可以支持上傳圖片后可以及時(shí)預(yù)覽圖片的功能,需要的朋友可以參考下2016-06-06js判斷復(fù)選框是否選中及選中個(gè)數(shù)的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄猨s判斷復(fù)選框是否選中及選中個(gè)數(shù)的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05js實(shí)現(xiàn)ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)ctrl+v粘貼上傳圖片,兼容chrome,firefox,ie11,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03JavaScipt驗(yàn)證URL新方法詳解(2023 年版)
這篇文章主要為大家介紹了JavaScipt驗(yàn)證URL新方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12