一、名詞解釋
1.基于對象(一切皆對象,以對象的概念來編程)
2.面向對象編程(Object Oriented Programming,OOP)
A.對象(JavaScript 中的所有事物都是對象)
B.對象的屬性和行為
屬性:用數據值來描述他的狀態
行為:用來改變對象行為的方法
C.類
具有相同或相似的性質的對象的抽象就是類。對象的抽象,就是類,類的具體化(實例化)就叫做對象
二、創建對象
1.構造函數方法
function fun1 () {alert(1); } var obj=new fun1(); alert(typeof obj); 彈出:1 -> object
2.Object方法
var obj=new Object(); alert(typeof obj); 彈出: object
?3.json方法(JavaScript Object Notation) 原生格式
var obj={}; alert(typeof obj);
?
?三、如何添加屬性和方法
如果屬性的值是函數,我們叫做他是對象的方法,否則叫做是屬性。調用對象的方法都會有一個返回值。
1.構造方法
A.聲明的時候添加
function fc(){//賦值this.name="chen";this.ac=function(){alert(1);return 2;} } var fun=new fc(); alert(fun.ac()); //結果:1 -> 2
?
?
?
B.聲明以后再添加
function fc(){ } var fun=new fc(); //賦值 fun.name="chen"; fun.ac=function(){alert(1);return 2; } alert(fun.ac()); //結果:1 -> 2
?
2.Object方法
A.聲明的時候添加
var fun=new Object(); function Object () {//賦值this.ac=function(){alert(1);return 2;} } alert(fun.ac());
?
B.聲明后再添加
var fun=new Object(); //賦值 fun.ac=function(){alert(1);return 2; } alert(fun.ac());
?
3.json方法
A.聲明的時候添加
var obj={name:'chen',red:function(){alert(1);return 2; }}; alert(obj.red());
B.聲明以后再添加
var obj={}; //賦值 obj.name='chen'; obj.red=function (){alert(1);return 2; } alert(obj.red());
?注意:最后一個添加的屬性或方法不能有逗號(,);否則IE7,IE6下報錯
var obj={name:'chen',red:function(){alert(1);return 2;}, }; alert(obj.red());
?四、訪問對象的屬性和方法
引用值.屬性?? ??? ?
引用值.方法();
var obj={}; obj.name='chen'; obj.red=function (){alert(1);return 2; } alert(obj.name); alert(obj.red());
?
?五、如何銷毀對象(對象=null;)
javascript自己的垃圾回收機制,就是在對象沒有引用的時候釋放內存(銷毀);
var obj={name:'chen',red:function(){alert(1);return 2; }}; obj=null; alert(obj.red()); //會報錯
?
六、如何刪除對象的屬性(delete)
var obj={name:'chen',red:function(){alert(1);return 2; }}; delete obj.name; alert(obj.name); //undefined
?