javascript对象属性替换

function obj(){
    this.a=0;
    this.b=1;
    this.c=2;
}
obj.prototype.go= function() {
    alert(this.a);
};
var a=new obj();
var obj2={
    a:1,
    b:2,
    c:3
}
a.go();

有什么方法可以把obj2内的a,b,c替换掉a里面的a,b,c

阅读 6.9k
4 个回答

谢谢各位了,找到了jquery的extend

obj.prototype.go= function(obj) {
    for(var i in obj){
         this[i]=obj[i];
    }
};
var a=new obj();
var obj2={
    a:1,
    b:2,
    c:3
}
a.go(obj2);

不过我觉得这样好像不是最好的方法

其实没有看懂问题,估计题主是不是这个需求

obj.prototype.go.call(obj2)

是介个意思吗?

    function obj(options){
        this.a= options.a || 0;
        this.b= options.b || 1;
        this.c= options.c || 2;
    }
    obj.prototype.go= function() {
        alert(this.a);
    };
    var obj2={
        a:1,
        b:2,
        c:3
    }
    var a=new obj(obj2);
    a.go();

对象a里面的属性在new的时候已经赋初值了,如果要改,要么在构造函数obj里面改,要么new完之后手动改

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题