【发布时间】:2015-07-04 06:13:42
【问题描述】:
有没有更简洁或易读的方式来做到这一点?
var foo={a:111,c:333, somePropertyThatShouldntBeAdded:'xxx'};
var myobj={x:1,y:2,z:3};
if(foo.a){myobj.a=foo.a;}
if(foo.b){myobj.b=foo.b;}
if(foo.c){myobj.c=foo.c;}
编辑。我这样做的原因如下。
var obj={value:this.text,css:{color:'#929292',margin:'1px 0px'}};
if(this.width){obj.css.width=this.width;}
if(this.type){obj.type=this.type;}
if(this.id){obj.id=this.id;}
var input=$('<input/>',obj)
【问题讨论】:
-
jquery.extend(myobj, foo) -
@hindmost
somePropertyThatShouldntBeAdded可能会造成问题。 -
@user1032531 之后可以
delete myobj.somePropertyThatShouldntBeAdded吗? -
@RGraham 像往常一样,猜测正确答案取决于实际情况。我是否有一堆属性要添加,只有一两个不应该添加,或者相反。
-
@hindmost
extend()看起来是一个很好的解决方案,如果可以对foo应用某种过滤器以仅返回要添加的适用属性。
标签: javascript jquery oop