混合使用原型继承和复制属性
当使用继承时,更多的是想在现有的功能中去扩展。意思就是创建一个对象并继承已经存在的对象,然后添加额外的属性和方法。可以结合上几讲的内容
- 用prototype方式继承去复制一个存在的对象。
- 复制另一个对象的所有属性。
function objectPlus(o, stuff) {
var n;
function F() {}
F.prototype = o;
n = new F();
n.uber = o;
for (var i in stuff) {
n[i] = stuff[i];
}
return n;
}
这个函数是一个对象o被继承,另一个对象stuff添加额外的方法和属性。让我们看看实例
var shape = {
name: 'shape',
toString: function() {return this.name;}
};
新建一个2D对象继承shape再添加额外的属性。
var twoDee = objectPlus(shape, {
name: '2D shape',
toString: function(){return this.uber.toString() + ', ' + this.name}
});
再创建一个triangle的对象。
var triangle = objectPlus(twoDee, {
name: 'Triangle',
getArea: function(){return this.side * this.height / 2;},
side: 0,
height: 0
});
让我们来测试一下代码
var my = objectPlus(triangle, {side: 4, height: 4});
my.getArea();//8
my.toString();//shape, 2D shape, Triangle, Triangle
发现了 Triangle的有两个。因为我们的实例继承triangle.我们可以把代码改为
var my = objectPlus(triangle, {side: 4, height: 4,name: 'My 4x4'});
my.getArea();//8
my.toString();//shape, 2D shape, Triangle,My
分享到:
相关推荐
在JavaScript中继承是一个非常复杂的话题,比其他任何面向对象的语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。与它们不同,在JavaScript中要想达到传承公用成员的目的,...
Javascript继承机制原理 可以参考下
浅析Javascript原型继承,浅析Javascript原型继承
javascript控件开发之继承关系的源码
JavaScript继承与多继承实例分析.docx
javascript继承之为什么要继承.docx
javascript 继承派生等问题的资料,都是网上收集的,学会apply call 就懂js面向对象的原理了。
JavaScript继承机制研究.pdf
JavaScript继承的三种方法实例 继承 继承: 首先继承是一种关系,类(class)与类之间的关系,JS中没有类,但是可以通过构造函数模拟类,然后通过原型来实现继承。 继承也是为了数据共享,js中的继承也是为了实现...
理解Javascript原型继承原理
javascript 五种继承简介。
javascript原型继承,prototype的使用,可以像java一样继承
Javascript继承[参考].pdf
JavaScript Inheritance ...And you think you’re so clever ...JavaScript的原型继承比类继承有更强大的表现力,现在就让我们来看看。 Java JavaScript 强类型 弱类型 静态 动态 基于类 基于原型 类
JavaScript继承机制探讨及其应用.pdf
Javascript原型继承Javascript原型继承Javascript原型继承
浅析javascript原型继承机制,浅析javascript原型继承机制
我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。
详解Javascript继承的实现_.docx
JavaScript面向对象编程中使用继承,详细讲解四种实现方法的原理。