1,內部對象
如Array,Boolean,Data,Math,Number,Object,RegExp,String對象等
這些對象系統給我們提供了各自的屬性與方法供調用。
2,基於類的對象
用類的方式實現對象的引用,這些類需要我們自己定義
3,基於原型的對象
提供有關如何使用 JavaScript 基於原型的對象模型的指南,並且提供指向特定信息的鏈接,這些信息描述基於原型的對象的自定義構造函數和繼承。
在我們寫js代碼的時候,內部對象是不可避免的要引用,但是光靠這些對象是不夠的`,所以需要我們自己定義對象,這個時候通常用到的對象是第三種,即基於原型的對象,下面就如何創建自己的對象,定義對象的方法、屬性,調用對象給出詳細的說明。
複製代碼 代碼如下:
//JScript 的一個強大功能是能夠定義構造函數,以創建自定義的基於原型的對象,以便在您的腳本中使用。
//要創建基於原型的對象的實例,首先必須定義一個構造函數。
//此過程將創建一個新對象並將它初始化(創建屬性並賦初始值)。
//當完成後,構造函數將返回對所構造對象的引用。
//在構造函數內部,創建的對象是通過 this 語句引用的。
function people(name,age)//定義people對象
{
e=name;//這裏的mName表示屬性,無需在外面定義,this指示的是people這個對象
=age;
gory="哺乳動物";
ring=Exporting;//方法,注意這裏只能寫toString,而不是toString()
thod=function()//等價於thod=method;然後下面寫method的方法
{
return "你好";
}
}
function Exporting()//可以有返回值,但函數名前不用寫返回值的類型,如string,int之類
{
return "我的名字是——"+e+",年齡是——"+;
}
/*function method()
{
return "你好";
}*/
ame=function()//在構造函數外面寫方法,
//也也可以這樣寫function ame()
//等價於在構造函數裏面的方法:ame
{
return e;
}
ge=;//在構造函數外面寫屬性,
//等價於在構造函數裏面的方法:ge
function oney()//同oney=function()等價
//也等價於在構造函數裏的寫法:oney
{
return "1000";
}
function show()//調用people對象
{
var me=new people("劉德華",22);//實例化people對象,關鍵字new
//var myName=ame();
//alert(myName);
="男";//這裏的sex屬性只能用於me這個實例,即特有屬性
//而如果有定義var you =new people("小強",1);
//you這個實例卻不能調用sex屬性
//如果要這兩個實例都可以引用的話應該把sex屬性寫作
//alert();
//alert(gory);
//alert(ring());//或者直接寫alert(me)即可
//alert(thod());
//alert(oney());
alert(thod()+"n姓名:"+ame()+"n性別:"++"n類別:"+gory+"n總資產:"+oney()+"n總結:"+ring());
}
根據上面的思路,可以在JavaScript內置對象上添加其它屬性或者方法,下面爲String對象增加一
good方法和bad屬性,這是內置對象中所沒有的方法和屬性
複製代碼 代碼如下:
=function()//自定義方法
{
return "恭喜你成功對內置String對象追加good方法";
}
="恭喜你成功對內置String對象追加bad屬性";//自定義屬性
function test()//調用String對象追加的屬性和方法
{
var str="good good study";//定義一個字符串實例str
alert(()+"n"+);//調用自定義的string對象的方法good和屬性bad
}
最後在html中添加兩個button按鈕,測試對象people和string對象追加的方法和屬性
複製代碼 代碼如下:
測試結果通過。表明對象的創建、對象方法屬性的調用、內部對象的追加方法和屬性調用都是正確的。