javascript 组合模式,对象冒充+原形链继承

//使用对象冒充来继承,只能继承构造对象中的信息
//原形中的无法继承构造对象中的方法每次实例化都会分配空间
//造成空间浪费

function Box(name,age){
this.name=name;
this.age=age;
this.run=function(){
return this.name+this.age+"运行中..."
}
}
Box.prototype.family=‘加‘;
function Desk(name,age){
Box.call(this,name,age);

}
var desk=new Desk(‘lee‘,100);
alert(desk.run());

//原形链+构造函数的模式,叫做组合模式

function Box(name,age){
this.name=name;
this.age=age;

}
Box.prototype.run=function(){
return this.name+this.age+"运行中.."
}

function Desk(name,age){
Box.call(this,name,age); //对象冒充

}
Desk.prototype=new Box(); //原形链继承
var desk=new Desk(‘lee‘,100);
alert(desk.run());

时间: 2024-10-27 02:35:37

javascript 组合模式,对象冒充+原形链继承的相关文章

【JavaScript】类继承(对象冒充)和原型继承__深入理解原型和原型链

JavaScript里的继承方式在很多书上分了很多类型和实现方式,大体上就是两种:类继承(对象冒充)和原型继承. 类继承(对象冒充):在函数内部定义自身的属性的方法,子类继承时,用call或apply实现对象冒充,把类型定义的东西都复制过来,这样的继承子类与父类并没有多少关联,不互相影响,有利于保护自身的一些私有属性. 原型继承:每个函数都有自己的原型(prototype)属性,这个属性是在生成实例对象时自动创建的.它本身又是一个对象,拥有能够在实例间共享的属性和方法.而实例本身的属性和方法,则

MDN——javascript——入门——第三章对象——对象.构造函数.原型链.继承——知识点总结

对象Object 由属性property(变量).方法method(函数)组成 var objectName = { member1Name : member1Value, member2Name : member2Value, member3Name : member3Value } member(成员)的值是任意的, 一个如上所示的对象被称之为对象的字面量(literal)——手动的写出对象的内容来创建一个对象.不同于从类实例化一个对象,我们会在后面学习这种方式. 访问对象成员 1.点表示法

JavaScript中的对象冒充

JavaScript里没有继承关键字,想要继承一个类需要用到“对象冒充”. 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>对象冒

对象冒充 实现多继承

注意:原型链时不支持多继承的 // 对象冒充实现类的多重继承 var ClassA=function (color){ this.color = color; this.sayColor = function(){ console.log(this.color); } }; var ClassB=function (name){ this.name = name; this.sayName = function(){ console.log(this.name); } }; //C 同时继承 A

js对象冒充实现的继承

//人类 function Person(name) { this.name = name; this.showName = function () { console.log("my name is " + name); } this.eat = function () { console.log("人是铁饭是钢..."); } } //白人 function WhitePerson(name) { this.temp = Person; this.temp(na

js继承之二(组合模式=借用构造函数+原型链方式)

借用构造函数模式:不能继承原型上的属性,可以避免引用类型修改问题 原型链:能够继承原型上的属性,会发生引用类型修改 so:敲黑板! function CarModel(c){ this.color=c||"白色"; this.arr=[1,2,3]; this.getColor=function(){ console.log('我的颜色是'+this.color); } } CarModel.prototype.test="lla"; function Car(br

javascript组合模式创建对象

<script>     function Person(name, age) {         this.name = name;         this.age = age;         this.family = ["father" , "mather" , "sister"] ;     }     Person.prototype = {             constructor: Person,       

JavaScript设计模式与开发实践---读书笔记(10) 组合模式

组合模式就是用小的子对象来构建更大的对象,而这些小的子对象也许是由更小的"孙对象"构成的. 组合模式将对象组合成树形结构,以表示"部分-整体"的层次结构. 抽象类在组合模式中的作用: 组合模式最大的优点在于可以一致地对待组合对象和基本对象.这种透明性带来的便利,在静态类型语言中体现的尤为明显. JavaScript中实现组合模式的难点在于要保证组合对象和叶对象拥有同样的方法,这通常需要用鸭子类型的思想对它们进行接口检查. 透明性带来的安全问题: 组合模式的例子-扫描

5分钟读书笔记之 - 设计模式 - 组合模式

组合模式是一种专为创建Web上的动态用户界面而量身定制的模式,使用这种模式,可以用一条命令在对各对象上激发复杂的或递归的行为. 在组合对象的层次体系中有俩种类型对象:叶对象和组合对象.这是一个递归定义,但这正是组合模式如此有用的原因所在.一个组合对象由一些别的组合对象和叶对象组成,其中只有叶对象不再包含子对象,叶对象是组合对象中最基本的元素,也是各种操作的落实地点. 存在一批组织成某种层次体系的对象(具体的结构在开发期间可能无法得知) 希望这批对象或其中的一部分对象实施一个操作 表单验证实例: