類的宣告
/**
* 類的宣告,採用建構函式宣告
*/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方法 是當前的主流開發方...