1. 程式人生 > >面向對象初步理解

面向對象初步理解

例子 屬性和方法 創建 定時 function new pro ret .sh

oop:抽象,封裝(只能通過對象來訪問方法),繼承(從已有對象),多態

oop組成:方法:對象下面的方法 arr.push()arr.sort() 屬性:對象下面的變量 例子:var obj=new Object();//創建一個空對象 obj.name=‘小明’; obj.showNmae=function(){ alert(this.name);//關鍵:this的用法 } obj.showName(); 工廠方式:面向對象的封裝函數 function createPerson(name){ //1、原料 var obj=new Object(); //2、加工 obj.name=name; obj.showName=function(){ alert(this.name); }; //3、出場 return obj; } var p1=createPerson(‘小明’);//創建出來的對象,相當於obj p1.showName();//調用對象方法 重點:當new去調用一個函數,此時this就是函數創建出來的對象,而且函數的返回值直接就是this啦(隱式返回)
上式可改為: function createPerson(name){ this.name=name; this.showName=function(){ alert(this.name);} } var p1=new CreatePerson(‘小強’); p1.showName(); 對象的引用 基本類型:賦值的時候只是值的復制 對象類型:賦值不僅是值的傳遞也是引用的傳遞 var a=【1,2,3】; var b=a; b.push(4); alert(a); //【1,2,3,4】 alert(b); //【1,2,3,4】 原型
改寫對象下面公用的方法或屬性,讓公用的方法或者屬性在內存中存在一份(提高性能) //原型:css中的class //普通方法:css中的style 原型:prototype,要寫在構造函數下面 var arr=【1,2,3,4,5】; Array.prototype.sum=function(){ var result=0; for(var i=0;i<this.length;i++){ ; result +=this【i】; } } alert(arr.sum()) this 指向問題 事件或者定時器,盡量讓面向對象中的this指向對象 prototype 屬性使您有能力向對象添加屬性和方法。

面向對象初步理解