Javascript继承5:如虎添翼----寄生式继承
2021-05-22 10:30
标签:ike 原型式继承 函数 UNC code log book 设计模式 asc 设计模式中的经典笔录 Javascript继承5:如虎添翼----寄生式继承 标签:ike 原型式继承 函数 UNC code log book 设计模式 asc 原文地址:https://www.cnblogs.com/-walker/p/9737528.html/*
* 寄生式继承
* 其实就是对原型继承的第二次封装,在封装过程中对继承的对象进行了扩展。
* 也存在原型继承的缺点!!
* 这种思想的作用也是为了寄生组合式继承模式的实现。
*/
//声明基对象
var book = {
name:‘js book‘,
alikeBook:[‘Html‘,‘Css‘]
};
//原型式继承
function inheritObj(obj){
//声明一个过渡函数对象
function F(){}
//过渡对象的原型继承父对象
F.prototype = obj;
//返回过渡对象的一个实例,该实例的原型继承了父对象
return new F();
}
function createBook(obj){
// 通过原型继承方式创建对象
var object = new inheritObj(obj);
// 拓展新对象
object.getName = function(){
console.log(this.name);
};
// 返回扩展后的对象
return object;
}
var book1 = createBook(book);
book1.name = ‘css‘;
book1.alikeBook.push(‘javascript‘);
console.log(book1.alikeBook); // [‘Html‘,‘Css‘,‘javascript‘]
book1.getName(); // css
var book2 = new createBook(book);
book2.name = ‘设计模式‘;
console.log(book2.alikeBook); // [‘Html‘,‘Css‘,‘javascript‘]
book2.getName(); // css
文章标题:Javascript继承5:如虎添翼----寄生式继承
文章链接:http://soscw.com/index.php/essay/87984.html