标题:javascript代码
只看楼主
liyuquan0103
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-24
结帖率:0
已结贴  问题点数:20 回复次数:3 
javascript代码
var Extend = function(destination, source) {
    for (var property in source) {
        destination[property] = source[property];
    }
    return destination;
这段代码是什么意思?高手指教
搜索更多相关主题的帖子: 代码 javascript 
2009-09-24 00:57
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:10 
是继承
这是Prototype对类进行扩展的一种方式,返回的是扩展后的对象。
以上代码可以这么理解,对对象destination现有的功能进行扩展,使其拥有源对象source的所有属性和方法。也就是给destination添加新的属性和方法。
以上是个人理解,有深入理解的同学可以发表一下看法,共同学习。
2009-09-24 09:13
歌革
Rank: 2
等 级:论坛游民
帖 子:2
专家分:17
注 册:2009-9-25
得分:10 
嗯..楼上说得对....
这是一个不太标准的继承   他不是在类上进行继承,而是对类的对像进行了掺元类式的复制~
var Extend = function(destination, source) {
    for (var property in source) {
        destination[property] = source[property];
    }
  return destination;
}

function Class1 (){
  this.c1 = 'test1';
  this.c2 = 'test2';
  this.c3 = function (){alert("I am func c3");};
}

Class1.prototype.c4 = function (){alert("I am func c4");};

function Class2 (){
  this.c5 = 'test5';
  this.c6 = 'test6';
}
var oClass1 = new Class1();
var oClass2 = new Class2();
Extend(oClass2,oClass1);      //这里的参数不是类,而是类的实例~
oClass2.c4();
alert(oClass2.c5);
2009-09-25 11:03
liyuquan0103
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-24
得分:0 
多谢大师们指点
2009-09-26 00:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-286620-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.496695 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved