首页 > 其他 > 详细

原型继承与属性拷贝的混合应用

时间:2015-02-05 11:12:36      阅读:224      评论:0      收藏:0      [点我收藏+]

对于继承应用来说,主要目标就是将一些现有的功能归为己有。也就是说,我们在新建一个对象时,通常首先应该继承与现有对象,然后再为其添加额外的方法和属性。具体而言就是:

  • 使用原型继承的方式克隆现存对象。
  • 而对于其他对象使用属性拷贝的方式
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则用于拷贝方法与属性。接下来我们看看实际应用。首先,需要一个基本对象shape:

var shape={
    name:‘shape‘,
    toString:function(){return this.name;}
}

接着再创建一个继承于shape的2D对象,并为其添加更多的属性。这些额外的属性由一个用文本标识法所创建的匿名对象提供。

var twoDee = objectPlus(shape,{
    name:‘2D shape‘,
    toString:function(){return this.uber.toString()+‘, ‘+this.name;}
});

现在,我们来创建一个继承于2D对象的triangle对象,并为其添加一些额外的属性。

var triangle = objectPlus(twoDee,{
    name:‘Triangle‘,
    getArea:function(){return this.side*this.height/2;},
    side:0,
    height:0
});

创建一个具体的triangle对象my,并自定义其部分属性:

技术分享

 

原型继承与属性拷贝的混合应用

原文:http://www.cnblogs.com/zhongxinWang/p/4274151.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!