Javascript 是基於對象的語言,它沒有類的概念,但是可以聲明對象,這時候對象就相當於面向對象當中的類,對象可以整合一系列相關操作,相當於是包含相關操作的一個容器。
用戶可以自定義對象,聲明對象和相關方法,或者使用系統對象。
對象的怎麼用:
一、如果自定義對象:首先聲明對象,對象中包含“屬性”和“方法”;有五種方式:
(1)第一種:Play是一個空的方法,相當於是在內存中開闢了一塊空間,空間會隨着接下去聲明的屬性和方法不斷擴充;
<script>
function Play(){
}
var p=new Play();
//屬性
p.width=300;
p.height=200;
p.num=4;
p.autotime=3;
//方法
p.autoplay=function(){
alert("play....");
}
p.test=function(){
}
alert(p.width);
p.autoplay();
</script>
(2)第二種:與不用對象,即過程化的使用也沒有太大區別,這兩種方法給人感覺比較零散,不建議使用。<script>
var p=new Object();
//屬性
p.width=300;
p.height=200;
p.num=4;
p.autotime=3;
//方法
p.autoplay=function(){
alert("play....");
}
p.test=function(){
}
alert(p.width);
p.autoplay();
</script>
(3)第三種:推薦使用。寫一個方法,其中用new Object()聲明一個對象,在這個方法中列出所有你需要的屬性和方法,然後返回這個對象。這樣“封裝”起來,看起來不僅工整而且使用起來也比較清晰明瞭,需要的時候直接調用這個Play方法即可。
<script>
function Play(){
var p=new Object();
//屬性
p.width=300;
p.height=200;
p.num=4;
p.autotime=3;
//方法
p.autoplay=function(){
alert("play....");
alert(this.num);
}
p.test=function(){
}
return p;
}
var p=Play();
alert(p.width);
p.autoplay();
</script>
(4)第四種:聲明對象時,使用默認的this變量。因爲每一個聲明的方法中都有一個默認的this,在這裏this就表示p。
<script>
function Play(width, height, num){
this.width=width;
this.height=height;
this.num=num;
this.autoplay=function(){
alert("this.num");
}
this.test=function(){
}
}
var p=new Play(3000, 200, 8);
var pro="";
for(pro in p){
document.write("p."+pro+"="+p[pro]+"<br>");
}
</script>
(5)第五種:Json方式:
在處理Ajax的時候經常用到的方式。
<script>
/* var p=new Object();
p.name="zhangsan";
p.age=10;
p.sex="nan";
*/
/*
json
{屬性1:值1,屬性2:值2,,,}
*/
var p={name:"zhangsan",age:10, sex:"nan"};
alert(p.name);
alert(p["name"]);
</script>
二、使用系統對象:
如系統中給我們用戶提供了幾個常用對象,如:時間對象(Date)、數學對象(Math)、數字數值對象(number)、數組對象(Array)等等。當我們要使用這個系統對象的時候,我們先去找到相應的對象,然後使用其中已經聲明好的方法,就可以很便捷的完成我們的操作。