javascript练习-方法借用

方法借用其实也可以叫做多重继承

var generic = {
  //返回一个字符串,这个字符串包含构造函数的名字(如果构造函数包含名字)
  //这个以及所有非继承来的,非函数属性的名字和值
  toString:function(){
    var s = '[';
    //如果这个对象包含构造函数,且构造函数包含名字
    //这个名字会作为返回字符串的一部分
    //需要注意的是,函数的名字属性是非标准的,并不是在所有的环境中都可用
    if(this.constructor && this.constructor.name){
      s += this.constructor.name + ':';
    }

    //枚举所有非继承且非函数的属性
    var n = 0;
    for(var name in this){
      if(!this.hasOwnProperty(name)){
        continue;
      }
      var value = this[name];
      if(typeof value === "function"){
        continue;
      }

      if(n++)s+=",";
      s += name + '=' + value;
    }
    return s + ']';
  },

  //通过比较this和that的构造函数和实例属性来判断它们是否相等
  //这种方法只适合于哪些实力属性是原始值的情况,原始值可以通过"==="来比较
  //这里还处理一种特殊情况,就是忽略由Set类添加的特殊属性
  equals:function(that){
    if(that==null) return false;
    if(this.constructor !== that.constructor) return false;
    for(var name in this){
      if(name === "|**objectid**|")continue;
      if(!this.hasOwnProperty(name))continue;
      if(this[name] !== that[name])return false;
    }
    return true;
  }
}

 

转载于:https://www.cnblogs.com/zjtTT/p/5061203.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值