面向對象初步理解
阿新 • • 發佈:2018-05-05
例子 屬性和方法 創建 定時 function new pro ret .sh
上式可改為:
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 屬性使您有能力向對象添加屬性和方法。
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啦(隱式返回)面向對象初步理解