国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

小議javascript 設(shè)計模式 推薦

2024-05-06 14:13:12
字體:
供稿:網(wǎng)友
記得早前就說過要和大家分享“javascript設(shè)計模式”,遲遲沒寫不是因為我懶,最近確實太忙,忙工作,忙旅游(啊哦?),好不容易這幾天空閑了,接下來是兌現(xiàn)之前空口白話的時間了。
在討論設(shè)計模式之前,請確認(rèn)您已經(jīng)有一定的腳本編程基礎(chǔ),如果不甚了解,建議可以先查閱本人很久之前寫的這篇《淺談javascript面向?qū)ο缶幊獭氛埧聪乱黄恼隆?
講到設(shè)計模式,不得不先重點著墨于“接口設(shè)計”,因為接口設(shè)計在設(shè)計模式中的意義太大了,大于模式本身。直觀起見,先介紹一下接口定義的形式:
代碼如下:
var interface = new Interface("interface",[["getName",1],["getAge",1]]);

可以看出接口函數(shù)必須包含兩個參數(shù),接口方法定義在一個二維數(shù)組中。上例中定義了兩個接口方法:getName,getAge,這兩個方法都帶一個參數(shù),下面我們詳細(xì)看一下Interface函數(shù)的實現(xiàn)代碼,從而加深大家對接口的理解。
代碼如下:
function Interface(name,methods){
if(arguments.length !=2){
console.log("參數(shù)必須為二個");
}
this.name = name;
this.methods = [];
if(methods.length<1){
console.log("第二個參數(shù)不能為空數(shù)組");
}
for(var i=0;len=methods.length,i<len;i++){
if(typeof methods[i][0] !== 'string'){
console.log("第一個參數(shù)數(shù)據(jù)類型必須為字符串");
}
if(methods[i][1] && typeof methods[i][1] !== 'number'){
console.log("第二個參數(shù)數(shù)據(jù)類型必須為整數(shù)型");
}
if(methods[i].length == 1){
methods[i][1] = 0;
}
this.methods.push(methods[i]);
}
}

從代碼中不難看出,接口函數(shù)的定義規(guī)則:[1]Interface函數(shù)只能包含兩個參數(shù),第一個參數(shù)為接口名稱,第二個參數(shù)是一個二維數(shù)組[2]第二個參數(shù)不允許為空數(shù)組[3]methods參數(shù)中的第一個參數(shù)必須為字符串類型,用以定義方法名,第二個參數(shù)必須為整數(shù)類型,用以定義方法的參數(shù)個數(shù)[4]當(dāng)methods中方法的參數(shù)個數(shù)為0時,可以省略不寫。
接下來要建一個類,讓該類繼承前面定義的interface接口,那該怎么做呢,別急,我們需要新增一個方法,見如下代碼:
代碼如下:
var ioldfish = function(name,age){
this.name = name;
this.age = age;
Interface.regImplement(this,interface);
}
ioldfish.prototype.getName = function(){
alert(this.name);
};
ioldfish.prototype.getAge = function(){
alert(this.age);
};
var fishwl = new ioldfish("老魚",27);
fishwl.getName();

Interface.regImplement就是我們要新增的方法,作用就是讓ioldfish類按照接口interface的規(guī)范編碼,否則將會在firebug的控制臺拋出異常。
看看這個方法的具體實現(xiàn)代碼:
代碼如下:
Interface.regImplement = function(object){
if(arguments.length<2){
console.log("接口繼承參數(shù)不能少于二個");
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 乌拉特前旗| 洛浦县| 伽师县| 固安县| 东城区| 鄂尔多斯市| 乌兰浩特市| 兴化市| 普安县| 施秉县| 沈丘县| 通道| 乌鲁木齐县| 商丘市| 五河县| 邯郸市| 萨嘎县| 永仁县| 江北区| 英山县| 吉安市| 乐平市| 吴江市| 四会市| 肃北| 阜新市| 阜新市| 武山县| 射洪县| 黑山县| 云阳县| 新昌县| 尚义县| 高台县| 弥勒县| 安多县| 威信县| 温州市| 雅江县| 梁山县| 四川省|