什麼是物件導向程式設計(oop)?用物件的思想去寫**,就是物件導向程式設計。
物件導向程式設計的特點
物件的組成
一、使用object函式或物件字面量都程式設計
var obj1=new object();//建立乙個空的物件
obj1.name='小明'; //
屬性 obj1.showname=function()
obj1.showname();
//小明
var obj2=new object();//
建立乙個空的物件
obj2.name='小灰'; //
屬性 obj2.showname=function()
obj2.showname();
//小灰
缺點:建立多個物件時,會產生大量的重複**。
解決方法:工廠方式——物件導向中的封裝函式
二、工廠方式——物件導向中的封裝函式
//工廠方式 : 封裝函式
function
createperson(name);
return
obj;
}var p1 = createperson('小明');
p1.showname();
var p2 = createperson('小強');
p2.showname();
缺點:建立物件都是使用object的原生建構函式來實現的,因此無法識別物件型別
解決方法:建構函式模式——給乙個物件新增方法
三 、建構函式模式——給乙個物件新增方法
//new 後面呼叫的函式叫建構函式
function
createperson(name)
}var p1=new createperson('小明');//
當new去呼叫乙個函式時,函式中的this就是建立出來的物件而函式中的返回值就是this
p1.showname();
var p2=new createperson('小強');
p2.showname();
//缺點
console.log( p1.showname == p2.showname )//false 他們值不同,位址不同
使用自定義的建構函式,定義物件型別的屬性和方法,與工廠方式的區別:
缺點:就是在建立物件時,每個物件都有一套自己的方法,每定義乙個函式都例項化了乙個物件
解決方法:原型模式(prototype)——給一類物件新增方法
四、原型模式(prototype)——給一類物件新增方法
原型(prototype):重寫物件下面公用的屬性或方法,讓公用的屬性或方法在記憶體中只存在乙份(提高效能),也就是說所有在原型物件中建立的屬性或方法都直接被所有物件例項共享。
function createperson(name)createperson.prototype.showname=function()
var p1=new createperson('小明');
p1.showname();
var p2=new createperson('小強');
p2.showname();
console.log( p1.showname== p2.showname);//
true
物件導向中this的問題
一般會出現問題的情況有兩種:
//定時器function
aaa(),1000);
}aaa.prototype.show=function
()var obj=new aaa();//
12
JS物件導向程式設計 物件
一般面向過程的寫法都是寫很多function,壞處 1.復用不好 2.函式名稱容易重複衝突 下面介紹物件導向的寫法 在js中每個函式function都是乙個物件。比如,下面這個就是乙個物件,我們在使用的時候就可以當作物件來使用。function helloworld 使用下面測試函式 呼叫該函式就會...
js物件導向程式設計
js物件導向程式設計 js使用建構函式作為物件的模板 var vehicle function 生成物件例項 var v new vehicle v.price 1000 傳引數的建構函式 var vehicle function value var v new vehicle 500 protot...
js物件導向程式設計
1.直接建立物件 集中例項化問題 2.工廠模式 物件識別問題 3.建構函式模式 例項化物件的方法在每個例項上都要建立一遍 建構函式模式 function student name var student1 new student 張三 每個例項物件對應乙個引用,所以例項化物件時,所有屬性與方法都會重...