知識梳理 3 7物件導向

2021-09-14 00:36:56 字數 2398 閱讀 2254

類的宣告

/**

* 類的宣告,採用建構函式宣告

*/var animal = function () ;

/*** es6中class的宣告

*/class animal2

}

生成例項

/**

* 例項化

*/console.log(new animal(), new animal2());

繼承的幾種方式

實現了部分繼承,只能繼承父類建構函式體內的屬性;父類的原型物件上的方法不能繼承。

/**

* 借助建構函式實現繼承

*/function parent1 ()

parent1.prototype.say = function () ;

function child1 ()

console.log(new child1(), new child1().say());//uncaught typeerror: (intermediate value).say is not a function

彌補了建構函式繼承的不足,但是繼承後原型鏈上的原型物件是共用的,改變乙個其餘的也都跟著改變。

/**

* 借助原型鏈實現繼承

*/function parent2 ()

function child2 ()

child2.prototype = new parent2();//new child2().__proto__===child2.prototype

var s1 = new child2();

var s2 = new child2();

console.log(s1.play, s2.play);//(3) [1, 2, 3] (3) [1, 2, 3]

s1.play.push(4);

console.log(s1.play, s2.play);//(4) [1, 2, 3, 4] (4) [1, 2, 3, 4]

實現向物件繼承的通用方式。(缺點:在例項化1個子類的時候,父類的建構函式執行了2次)

/**

* 組合方式

*/function parent3 ()

function child3 ()

child3.prototype = new parent3();

var s3 = new child3();

var s4 = new child3();

s3.play.push(4);

console.log(s3.play, s4.play);//(4) [1, 2, 3, 4] (3) [1, 2, 3]

優點:例項化1個子類的時候,父類的建構函式執行了1次;

不足:無法區分乙個物件是 直接 由子類例項化的還是通過父類例項化的。

/**

* 組合繼承的優化1

* @type

*/function parent4 ()

function child4 ()

child4.prototype = parent4.prototype;//例項化1個子類的時候,父類的建構函式執行了1次

var s5 = new child4();

var s6 = new child4();

console.log(s5, s6);//child4  child4 

console.log(s5 instanceof child4, s5 instanceof parent4);//true true

console.log(s5.constructor);

/**ƒ parent4()

*/

完美寫法。通過object.create()建立乙個中間物件,再修改子類例項的建構函式。

/**

* 組合繼承的優化2

*/function parent5 ()

function child5 ()

child5.prototype = object.create(parent5.prototype);

child5.prototype.constructor=child5;

var s7=new child5();

console.log(s7 instanceof child5,s7 instanceof parent5);//true true

s7.constructor

/**ƒ child5()

*/

PHP 物件導向 知識點梳理 三

介面定義的實現要點 宣告頁面字符集 header content type text html charset utf 8 1 定義 介面 inte ce tel 2 定義 介面 inte ce 3 定義mp4介面 inte ce mp4extends 4 定義手機類,並實現所有介面 class m...

函式呼叫時的臨時物件 物件導向知識梳理

1.在原型上定義方法可以這樣定義 2.建立物件的安全模式 3.繼承的方式 1 類式繼承 缺點 一,由於子類通過其原型prototype對父類例項化,繼承了父類。所以說父類中的共有屬性如果是引用型別,就會在父類中被所有例項共用,更改屬性會直接影響到其他子類 二,子類實現的繼承是靠其原型prototyp...

軟考知識點梳理 物件導向方法

物件導向 object oriented,oo 方法認為,客觀世界是由各種物件組成的,任何事物都是物件,每乙個物件都有自己的運動規律和內部狀態,都屬於某個物件類,是該物件類的乙個元素。複雜的物件可由相對簡單的各種物件以某種方式而構成,不同物件的組合及相互作用就構成了系統。oo方法 是當前的主流開發方...