|
這里用的是Ext core3.0,Ext中用Ext.extend來(lái)定義一個(gè)類(當(dāng)然它更多用來(lái)擴(kuò)展一個(gè)類),Ext整個(gè)框架各種控件如Panel,MessageBox等都是用Ext.extend方法來(lái)擴(kuò)展。這里僅僅用它來(lái)定義一個(gè)最簡(jiǎn)單的類。
看Ext.extend的代碼可得知,它仍然是用構(gòu)造函數(shù)和原型來(lái)組裝一個(gè)類。
這里只需傳兩個(gè)參數(shù)即可,第一個(gè)參數(shù)是根類Object,第二個(gè)是原型。
復(fù)制代碼 代碼如下:
/**
* Person類
* @param {Object} name
*/
var Person = Ext.extend(Object,{
constructor : function(name) {this.name = name;},
setName : function(name) {this.name = name;},
getName : function() {return this.name;}
});
//創(chuàng)建一個(gè)對(duì)象
var p = new Person("Lily");
console.log(p.getName());//Lily
p.setName("Andy");
console.log(p.getName());//Andy
//測(cè)試instanceof及p.constructor是否正確指向了Person
console.log(p instanceof Person);//true
console.log(p.constructor == Person);//true
比較特殊的是,如果單純的定義一個(gè)類,那么第一個(gè)參數(shù)永遠(yuǎn)傳Object即可。
JavaScript技術(shù):javascript 寫(xiě)類方式之八,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。