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

首頁 > 語言 > JavaScript > 正文

javascript面向對象包裝類Class封裝類庫剖析

2024-05-06 14:19:47
字體:
來源:轉載
供稿:網友
javascript是個入門門檻很低的語言,甚至一個從來沒有接觸過javascript的技術人員,幾小時內就可以寫出一個簡單有用的程序代碼。

但是如果因此你就下結論:javascript是門簡單的語言。那你就大錯特錯了。想寫出高性能的代碼,同樣需要具備一個高級程序員的基本素養。

一個java或者c++程序員,不一定能寫出高性能的javascript代碼,但更容易寫出高性能的javascript代碼。
javascript的簡單是基于它“胸襟廣闊”的包容性。它聲明時,不需要指定類型,甚至可以任意的轉換類型。它面向對象,卻沒有類(Class)的限制。它是一門崇尚自由又非常嚴謹的語言,如果你是一個自由主義者,那么,擁抱javascript吧!

面向對象編程(OOP)是一種流行的編程方法。但javascript的OOP,較之JAVA、c++有很大的同,主要體現它的繼承方式不同。javascript是基于原型PROTOTYPE繼承的。所有對象都是基于原型鏈,最終追述到Object對象。

這里不想討論過多的關于javascript的繼承方式和其它語言的繼承方式的不同之處。主要討論如何封裝javascript的Class,以便更好的管理和維護基礎代碼,減少重復代碼,以及更好的模塊化編程。

下面是幾個github上找到的比較好的Class封裝類庫:
一、MY-CLASS
項目地址:https://github.com/jiem/my-class
先看基本用法:
a、新建一個類
代碼如下:
(function(){
//新建類
varPerson=my.Class({
//添加靜態方法
STATIC:{
AGE_OF_MAJORITY:18
},
//構造函數
constructor:function(name,age){
this.name=name;
this.age=age;
},
//實例方法
sayHello:function(){
console.log('Hellofrom'+this.name+'!');
},
//實例方法
drinkAlcohol:function(){
this.age<Person.AGE_OF_MAJORITY?
console.log('Tooyoung!Drinkmilkinstead!'):
console.log('Whiskeyorbeer?');
}
});
//暴露給命名空間
myLib.Person=Person;
})();
varjohn=newmyLib.Person('John',16);
john.sayHello();//log"HellofromJohn!"
john.drinkAlcohol();//log"Tooyoung!Drinkmilkinstead!"

b、繼承一個類
代碼如下:
(function(){
//Dreamer繼承Person
varDreamer=my.Class(Person,{
//構造方法
constructor:function(name,age,dream){
Dreamer.Super.call(this,name,age);
this.dream=dream;
},
//實例方法
sayHello:function(){
superSayHello.call(this);
console.log('Idreamof'+this.dream+'!');
},
//實例方法
wakeUp:function(){
console.log('Wakeup!');
}
});
//Super訪問父類
varsuperSayHello=Dreamer.Super.prototype.sayHello;
//暴露給全局命名空間
myLib.Dreamer=Dreamer;
})();
varsylvester=newmyLib.Dreamer('Sylvester',30,'eatingTweety');
sylvester.sayHello();//log"HellofromSylvester!IdreamofeatingTweety!"
sylvester.wakeUp();//log"Wakeup!"

c、給類添加新方法
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 汽车| 黎川县| 西华县| 米脂县| 磴口县| 闵行区| 隆林| 望奎县| 东兴市| 赤峰市| 崇仁县| 磐安县| 通城县| 高邑县| 西林县| 锡林郭勒盟| 喀什市| 大关县| 沂源县| 嘉义市| 淅川县| 长海县| 北宁市| 台安县| 探索| 河池市| 沙洋县| 蓬安县| 临泽县| 分宜县| 晋江市| 偏关县| 庐江县| 陈巴尔虎旗| 上蔡县| 波密县| 巴彦县| 商都县| 五莲县| 南丹县| 峡江县|