OOP物件導向三大特點

2021-07-27 05:17:22 字數 1356 閱讀 9100

(一)封裝將現實中乙個事物的屬性和功能集中定義在乙個物件中。(建立物件)

建立物件的3種方式

1.直接量方式:(建立乙個單獨的物件)

var obj=  

2. 用new方式:

var obj=new object();

obj.屬性名=值;

obj.方法名=function()

3.反覆建立多個相同結構的物件的方式:2步

①定義建構函式:

function 型別名(屬性引數列表)*/

② 用new呼叫建構函式: 例項化乙個物件。

var obj=new 型別名(屬性值列表);

/*new: 1.建立新的空物件;2.設定新物件的__proto__繼承建構函式的原型物件;3.用新物件呼叫建構函式,為新物件新增規定的屬性和方法。4.將新物件的位址儲存到變數中 */

js中一切物件底層都是hash陣列。

(二)繼承:父物件中的成員,子物件無需重複定義,即可直接使用。(**重用,節約記憶體)

js中的繼承都是原型繼承。

原型物件:集中儲存一類子物件共有成員的父級物件。

原型鏈: 由各級物件的__proto__屬性逐級繼承,形成的鏈式結構。(原型鏈控制著物件中屬性的使用順序)

1. 判斷指定"屬性名"是否是obj的自有屬性: var bool=obj.hasownproperty("屬性名")

2. 判斷是否是共有屬性:  !obj.hasownproperty("屬性名") &&("屬性名" in obj)

3. 獲取原型物件: 2種方式: 建構函式.prototype;object.getprototypeof(child)

4. 刪除屬性: delete 物件.屬性名

5. 判斷乙個物件是不是陣列型別:

1. 判斷father是否是child的原型鏈上的父級物件:father.isprototypeof(child);

2. 判斷child是否是建構函式的例項:child instanceof 建構函式;

3. 輸出物件的內部屬性class: object.prototype.tostring.call(obj);

4. 判斷obj是否是陣列型別: array.isarray(obj)

如何自定義繼承: 3種:(三)多型:

重寫(override):如果子物件覺得父物件繼承來的成員不好用,可子定義同名的自有成員,來覆蓋父物件的成員。

OOP物件導向三大特點

一 封裝 將現實中乙個事物的屬性和功能集中定義在乙個物件中。建立物件 建立物件的3種方式 1.直接量方式 建立乙個單獨的物件 var obj 2.用new方式 var obj new object obj.屬性名 值 obj.方法名 function 3.反覆建立多個相同結構的物件的方式 2步 定義...

OOP物件導向三大特點

一 封裝 將現實中乙個事物的屬性和功能集中定義在乙個物件中。建立物件 建立物件的3種方式 1.直接量方式 建立乙個單獨的物件 var obj 2.用new方式 var obj new object obj.屬性名 值 obj.方法名 function 3.反覆建立多個相同結構的物件的方式 2步 定義...

OOP物件導向三大特點

一 封裝 將現實中乙個事物的屬性和功能集中定義在乙個物件中。建立物件 建立物件的3種方式 1.直接量方式 建立乙個單獨的物件 var obj 2.用new方式 var obj new object obj.屬性名 值 obj.方法名 function 3.反覆建立多個相同結構的物件的方式 2步 定義...