js物件導向

2021-08-02 05:14:14 字數 2482 閱讀 6625

js物件導向的幾種寫法

js 中,物件導向有幾種寫法。歸納下,大概有下面這幾種:工廠模式,建構函式模式,原型模式,建構函式與原型模式的混合使用,原型鏈繼承,借用建構函式繼承。

一、工廠模式

閉包使用的原理與之很相似,最後返回的

function

person

(name,age,jpb);//定義o這個物件

o.name=name;

o.age=age;

o.job=job;

o.sayname=function

() return o;

} var demo=person('tj',22,'fe');

console.log(demo);

二、建構函式模式

建構函式本身也是函式,只不過是乙個建立物件的函式

function

person

(name,age);

}var demo2=new person('tj2',23);

console.log(tj2);

使用建構函式有一些注意點:必須使用new操作符,呼叫建構函式會經歷以下四步:

1、建立乙個新的物件

2、將建構函式的作用域給了新物件(this指向新物件),其中this 是全域性變數,window.age 獲取的結果是一樣的。

3、對新物件新增屬性

4、返回新物件

三、原型模式

每個函式都有乙個prototype屬性,這個屬性是一直指標,指向乙個物件,這個物件的用途是包含可以由特定型別的例項共享的屬性和方法。

使用原型物件的好處是可以讓所有物件例項共享他所包含的屬性和方法。不必在建構函式中定義物件例項的資訊,而是可以將這些資訊直接新增到原型物件中。

function

person

(){};

person.prototype.name ='tj3';

person.prototype.age=24;

person.prototype.sayname= function

()var demo3= new person();

console.log(demo3);

//更簡單的原型辦法

function

person

(){};

person.prototype=

};var demo4=new person();

console.log(demo4);

四、組合使用建構函式和原型模式

建構函式模式用於定義例項屬性,而原型模式定義方法和共享的屬性。這種混合模式還支援向建構函式傳遞引數。

function

person

(name,age,job)

}person.prototype =

}

五、原型鏈繼承

原型鏈繼承的主要思想是利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。

注意點:通過原型鏈繼承是不能使用物件字面量建立原型方法,這樣會重寫原型鏈!

function

supertype

()function

subtype

(){}

subtype.prototype=new supertype();//繼承了supertype

var instance1=new subtype();

console.log(instance1);

六、借用建構函式繼承

function

wanda

()function

sicong

()var sc = new sicong();

sc.money.push(666);

console.log(sc);

七、組合繼承

將原型鏈和借用建構函式的技術組合起來一起用,好處是既能實現函式的復用,又能保證每個例項有自己的屬性。

function

supertype

(name) ;

supertype.prototype.sayname = function

() ;

function

subtype

(name, age) ;

subtype.prototype = new supertype();//繼承方法

var instance1 = new subtype('tj', 22);

instance1.sayname();

js物件導向

物件導向是相對於面向過程而提出的程式設計思想 核心在於通過這種方法的設計出來的程式不再是機械的按照設定的步驟去執行,而是按照需要的步驟去執行。舉個例子 乙個人要吃飯,如果用的面向過程的話就必須執行吃飯前的一切行為,而物件導向則可以跳過之前的環節!建構函式 所謂的工廠方式 用來構造抽象物件,通過呼叫建...

js物件導向

js物件導向 一 什麼是物件 物件可以看成乙個屬性的集合。對像一般有屬性和方法構成,方法的實質是函式,而屬性的實質是變數。二 什麼是物件導向 物件導向可以理解為不需要去了解對像的內部結構,就可以使用它。像我們的date 對像的方法可以獲取和設定時間,但我們並不了解其內部原理。三 物件導向 抽風機 抽...

JS物件導向

一 js物件導向 js是一門指令碼語言,不是物件導向的語言,它沒有類的概念,有物件的概念。物件導向程式設計 oop 和面向過程程式設計 opp 的區別 面向過程以 事件為中心,將完成整個事件拆分成若干個步驟,按照步驟依次執行。物件導向以 事物為中心,完成某個需求需要哪些事物參與,側重點在於每個事物的...