js 對物件導向的理解

2021-08-19 19:46:55 字數 1610 閱讀 2136

多重繼承

多型this:當前的方法屬於誰。

//最基礎的建立物件--使用此方式創造多個物件會瘋

var obj = new object();

obj.name = "herman";

obj.sayname = function() ;

obj.sayname(); //herman

工廠模式
//解決建立多個物件的問題,可以想到用函式將上面**包起來,將變數作為引數傳到物件中。這個函式叫做建構函式(可以理解為構造出物件的函式)。這種模式被稱為工廠模式

function createperson(name) ;

return obj;                        //出廠

}var p1 = createperson('herman');

p1.sayname();

問題:

解決沒有new的問題:

function createperson(name) ;

//呼叫函式,前面加上new,js會在這兒返回這個物件:return this

}var p1 = new createperson('herman');    //呼叫函式,前面加上new。

var p2 = new createperson('allen');

p1.sayname();

p2.sayname();

p1.sayname === p2.sayname; //false

解決函式重複的問題:

function createperson(name) 

createperson.prototype.sayname = function()

var p1 = new createperson('herman'); 

var p2 = new createperson('allen');

p1.sayname();

p2.sayname();

p1.sayname === p2.sayname; //true

在建構函式加屬性,在原型上加方法。此方式稱為混合模式。

例:選項卡

one

twothree

one.one.

two.two.two

three.three.

實現選項卡功能:

// window.onload = function() ;

show.call()    //a; this為

function a() ;

function b()

var b = new b();

console.log(b.abc);    //123

方法的繼承通過淺拷貝方式。

對物件導向的理解

修飾符一般只修飾屬性和方法,屬性盡量使用private,方法盡量使用public public公開的,只要在同一工程內就可以訪問 protected受保護的,只能在當前包或子類中才能訪問 預設,沒有修飾符即預設,只能在當前包中才能訪問 private,私有的,只能在當前類中使用 static 修飾變...

對物件導向的理解

物件導向包括三個特徵 繼承 封裝 多型。類的繼承性是指從已有的乙個類來extends子類,子類具有了父類的所有特徵,同時,子類也可以有新的特性。比如 人是乙個類,男人具有了人類的所有的特性,比如思考,比如勞動。同時,男人也有新的特性,比如男人會長鬍子。類的封裝是指類把所有的操作都封閉起來,僅僅提供介...

對物件導向的理解

封裝 就是將一類事物的屬性和行為抽象成乙個類,使其屬性私有化,行為公開化,提高了資料的隱秘性的同時,使 模組化。這樣做使得 的復用性更高。繼承 則是進一步將一類事物共有的屬性和行為抽象成乙個父類,而每乙個子類是乙個特殊的父類 有父類的行為和屬性,也有自己特有的行為和屬性。這樣做擴充套件了已存在的 塊...