Javascript 继承 (七)
程序员文章站
2022-05-25 15:05:32
...
混合使用原型继承和复制属性
当使用继承时,更多的是想在现有的功能中去扩展。意思就是创建一个对象并继承已经存在的对象,然后添加额外的属性和方法。可以结合上几讲的内容
- 用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
推荐阅读
-
js控制页面控件隐藏显示的两种方法介绍_javascript技巧
-
javascript - 网站埋点,统计用户数据
-
深入JavaScript之基础应用
-
js中利用tagname和id获取元素的方法_javascript技巧
-
js快速与任意QQ号码建立临时对话_javascript技巧
-
Javascript-EXTJS组件开发完整代码
-
JS获取下拉框显示值和判断单选按钮的方法_javascript技巧
-
JS中setInterval、setTimeout不能传递带参数的函数的解决方案_javascript技巧
-
js中事件的处理与浏览器对象示例介绍_javascript技巧
-
javascript简单事件处理