Python小技巧:大圖片批量轉化為縮圖
阿新 • • 發佈:2021-01-08
技術標籤:紅寶書javascript
【紅寶書p248寄生式組合繼承】
實現原理:定義一個prototype變數,儲存Object.create(父類.prototype)的結果,即prototype物件的原型是父類的原型。同時prototype新增constructor屬性指向子類。
之後再將prototype物件變成子類的原型。
1,將父類原型中的方法新增進子類原型中的原型,檢視結構
<script> function addPrototype(subType, superType) { let prototype = Object.create(superType.prototype); // prototype物件的原型是父類的原型 prototype.constructor = subType; // 給prototype物件新增constructor屬性,指向子類 subType.prototype = prototype; // 將prototype物件賦值給子類的原型 } function SuperType(name) { // 父類 this.name = name; this.colors = ["red", "blue", "green"]; } SuperType.prototype.sayName = function () { // 要的就是父類原型 console.log(this.name); }; function SubType(name, age) { } addPrototype(SubType, SuperType);//利用函式修改子類的原型 console.dir(SubType); </script>
2,子類中通過父類call子類,使子類擁有父類一樣的屬性
<script> function addPrototype(subType, superType) { let prototype = Object.create(superType.prototype); // prototype物件的原型是父類的原型 prototype.constructor = subType; // 給prototype物件新增constructor屬性,指向子類 subType.prototype = prototype; // 將prototype物件賦值給子類的原型 } function SuperType(name) { // 父類 this.name = name; this.colors = ["red", "blue", "green"]; } SuperType.prototype.sayName = function () { // 要的就是父類原型 console.log(this.name); }; function SubType(name) { SuperType.call(this, name); } addPrototype(SubType, SuperType);//利用函式修改子類的原型 let sub = new SubType('ike') console.dir(SubType); </script>