您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“JavaScript中模仿C#編碼方式舉例分析”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
首先是JavaScript代碼底層部分:
var jmz = {}; //全部代碼的存放對(duì)象 jmz.demo = {}; //在jmz下引申出一個(gè)demo存放對(duì)象,
//以上兩個(gè)就類似于.NET里面的NameSpace,下面的方法編寫也模仿C#的編碼方式
jmz.o = {}; //用來存放全部的全局變量
這里定義3個(gè)東西,所有的靜態(tài),方法及變量都從jmz下面引申出來。
◆好處:不管你代碼寫的有多少行,全部只占用一個(gè)全局變量,這樣你跟其他程序員合作是就不會(huì)有任何的變量名沖突。
◆壞處:如果寫到后面調(diào)用代碼會(huì)過長(zhǎng),但也有個(gè)處理方式,這里提示下with這個(gè)。
jmz.o是用來存放你要在網(wǎng)頁(yè)中添加的全局變量,當(dāng)然大家可以自由擴(kuò)展優(yōu)化,有好的點(diǎn)子希望能聯(lián)系我共同探討。
接下來是兩個(gè)典型例子,一個(gè)模擬C#靜態(tài)方法,一個(gè)模擬C#的類。
靜態(tài)方法:
jmz.demo.HelloWorldA = function(str) { //模擬C#的靜態(tài)方法調(diào)用方式 alert(str); }
這個(gè)與原來的JS函數(shù)一摸一樣,調(diào)用方式也類似于C#的靜態(tài)調(diào)用方式??捎糜谝恍┓浅3S玫姆椒ǎ热绔@得對(duì)象,獲得字符串長(zhǎng)度,給對(duì)象添加事件等等。
類寫法:
jmz.demo.HelloWorldB = function() { var _data = ""; //類中的全局私有變量,前綴“_”來與方法內(nèi)的變量進(jìn)行區(qū)分 function Process(str) { //類中的私有方法,私有方法編寫方式頭字母大寫 if (str.length > 0) _data = str; else return false; return true; } function Show() { alert(_data); } this.process = function(str) { //類中的公共方法,供外部調(diào)用,頭字母小寫 return Process(str); } this.show = function() { Show(); } }
這個(gè)類寫法個(gè)人感覺還不錯(cuò),自己給自己定義編寫代碼時(shí)候的規(guī)范用來區(qū)分私有方法與公共方法、私有變量與共有變量。
好了上面的代碼框架寫完了,下面來個(gè)實(shí)際調(diào)用的吧!
jmz.Bind("load", function() { jmz.demo.HelloWorldA("Chinajmz:HelloWorldA!");//靜態(tài)方法調(diào)用 jmz.o.helloWorldB = new jmz.demo.HelloWorldB();//初始化類并存放到j(luò)mz.o的對(duì)象中 if (jmz.o.helloWorldB.process("Chinajmz:HelloWorldB!") == true) {//對(duì)象中公共方法調(diào)用 jmz.o.helloWorldB.show(); } });
此處用了我先前的JS事件綁定方法,有興趣的可以去查看下。
效果:
“JavaScript中模仿C#編碼方式舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。