淺談JavaScript中模仿C#編碼方式
首先是JavaScript代碼底層部分:
- var jmz = {}; //全部代碼的存放對象
- jmz.demo = {}; //在jmz下引申出一個demo存放對象,
這里定義3個東西,所有的靜態(tài),方法及變量都從jmz下面引申出來。
◆好處:不管你代碼寫的有多少行,全部只占用一個全局變量,這樣你跟其他程序員合作是就不會有任何的變量名沖突。
◆壞處:如果寫到后面調(diào)用代碼會過長,但也有個處理方式,這里提示下with這個。
jmz.o是用來存放你要在網(wǎng)頁中添加的全局變量,當(dāng)然大家可以自由擴展優(yōu)化,有好的點子希望能聯(lián)系我共同探討。
接下來是兩個典型例子,一個模擬C#靜態(tài)方法,一個模擬C#的類。
靜態(tài)方法:
- jmz.demo.HelloWorldA = function(str) { //模擬C#的靜態(tài)方法調(diào)用方式
- alert(str);
- }
這個與原來的JS函數(shù)一摸一樣,調(diào)用方式也類似于C#的靜態(tài)調(diào)用方式??捎糜谝恍┓浅3S玫姆椒ǎ热绔@得對象,獲得字符串長度,給對象添加事件等等。
類寫法:
- 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();
- }
- }
這個類寫法個人感覺還不錯,自己給自己定義編寫代碼時候的規(guī)范用來區(qū)分私有方法與公共方法、私有變量與共有變量。
好了上面的代碼框架寫完了,下面來個實際調(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的對象中
- if (jmz.o.helloWorldB.process("Chinajmz:HelloWorldB!") == true) {//對象中公共方法調(diào)用
- jmz.o.helloWorldB.show();
- }
- });
此處用了我先前的JS事件綁定方法,有興趣的可以去查看下。
效果:
【編輯推薦】