- 相關(guān)推薦
JavaScript中的三種對象
1,內部對象
如Array,Boolean,Data,Math,Number,Object,RegExp,String對象等
這些對象系統給我們提供了各自的屬性與方法供調用。
2,基于類(lèi)的對象
用類(lèi)的方式實(shí)現對象的引用,這些類(lèi)需要我們自己定義
3,基于原型的對象
提供有關(guān)如何使用 JavaScript 基于原型的對象模型的指南,并且提供指向特定信息的鏈接,這些信息描述基于原型的對象的自定義構造函數和繼承。
在我們寫(xiě)js代碼的時(shí)候,內部對象是不可避免的要引用,但是光靠這些對象是不夠的,所以需要我們自己定義對象,這個(gè)時(shí)候通常用到的對象是第三種,即基于原型的對象,下面就如何創(chuàng )建自己的對象,定義對象的方法、屬性,調用對象給出詳細的說(shuō)明。
復制代碼 代碼如下:
//JScript 的一個(gè)強大功能是能夠定義構造函數,以創(chuàng )建自定義的基于原型的對象,以便在您的腳本中使用。
//要創(chuàng )建基于原型的對象的實(shí)例,首先必須定義一個(gè)構造函數。
//此過(guò)程將創(chuàng )建一個(gè)新對象并將它初始化(創(chuàng )建屬性并賦初始值)。
//當完成后,構造函數將返回對所構造對象的引用。
//在構造函數內部,創(chuàng )建的對象是通過(guò) this 語(yǔ)句引用的。
function people(name,age)//定義people對象
{
this.mName=name;//這里的mName表示屬性,無(wú)需在外面定義,this指示的是people這個(gè)對象
this.Age=age;
this.category="哺乳動(dòng)物";
this.toString=Exporting;//方法,注意這里只能寫(xiě)toString,而不是toString()
this.myMethod=function()//等價(jià)于this.myMethod=method;然后下面寫(xiě)method的方法
{
return "你好";
}
}
function Exporting()//可以有返回值,但函數名前不用寫(xiě)返回值的類(lèi)型,如string,int之類(lèi)
{
return "我的名字是——"+this.mName+",年齡是——"+this.Age;
}
/*function method()
{
return "你好";
}*/
people.prototype.getName=function()//在構造函數外面寫(xiě)方法,
//也也可以這樣寫(xiě)function people.prototype.getName()
//等價(jià)于在構造函數里面的方法:this.getName
{
return this.mName;
}
people.prototype.getAge=this.Age;//在構造函數外面寫(xiě)屬性,
//等價(jià)于在構造函數里面的方法:this.getAge
function people.prototype.getMoney()//同people.prototype.getMoney=function()等價(jià)
//也等價(jià)于在構造函數里的寫(xiě)法:this.getMoney
{
return "1000";
}
function show()//調用people對象
{
var me=new people("劉德華",22);//實(shí)例化people對象,關(guān)鍵字new
//var myName=me.getName();
//alert(myName);
me.sex="男";//這里的sex屬性只能用于me這個(gè)實(shí)例,即特有屬性
//而如果有定義var you =new people("小強",1);
//you這個(gè)實(shí)例卻不能調用sex屬性
//如果要這兩個(gè)實(shí)例都可以引用的話(huà)應該把sex屬性寫(xiě)作people.prototype.sex
//alert(me.sex);
//alert(me.category);
//alert(me.toString());//或者直接寫(xiě)alert(me)即可
//alert(me.myMethod());
//alert(me.getMoney());
alert(me.myMethod()+"n姓名:"+me.getName()+"n性別:"+me.sex+"n類(lèi)別:"+me.category+"n總資產(chǎn):"+me.getMoney()+"n總結:"+me.toString());
}
根據上面的思路,可以在JavaScript內置對象上添加其它屬性或者方法,下面為String對象增加一
good方法和bad屬性,這是內置對象中所沒(méi)有的方法和屬性
復制代碼 代碼如下:
String.prototype.good=function()//自定義方法
{
return "恭喜你成功對內置String對象追加good方法";
}
String.prototype.bad="恭喜你成功對內置String對象追加bad屬性";//自定義屬性
function test()//調用String對象追加的屬性和方法
{
var str="good good study";//定義一個(gè)字符串實(shí)例str
alert(str.good()+"n"+str.bad);//調用自定義的string對象的方法good和屬性bad
}
最后在html中添加兩個(gè)button按鈕,測試對象people和string對象追加的方法和屬性
復制代碼 代碼如下:
測試結果通過(guò)。表明對象的創(chuàng )建、對象方法屬性的調用、內部對象的追加方法和屬性調用都是正確的。
【JavaScript中的三種對象】相關(guān)文章:
Javascript中arguments對象的詳解和使用方法03-31
javascript克隆對象深度介紹03-31
在Java中執行JavaScript代碼04-01
關(guān)于javascript對象之內置和對象Math的使用方法03-30