Javascript JS对象属性定义速记

Javascript JS对象属性定义速记,javascript,object,properties,Javascript,Object,Properties,因此,我想知道,是否有一种方法可以做到这一点: var bar=function(){ 这={ 名称:“baz”, 行动:功能(){ 警惕(“吠叫”); } }; } var foo=新条(); console.log(foo.name); foo.action() Object.prototype.extend=函数(obj){ 用于(obj中的var i){ if(对象为自有财产(i)){ 此[i]=obj[i]; } } }; var bar=函数(){ 这个.延伸({ 名称:“baz”

因此,我想知道,是否有一种方法可以做到这一点:

var bar=function(){
这={
名称:“baz”,
行动:功能(){
警惕(“吠叫”);
}
};
}
var foo=新条();
console.log(foo.name);
foo.action()
Object.prototype.extend=函数(obj){
用于(obj中的var i){
if(对象为自有财产(i)){
此[i]=obj[i];
}
}
};
var bar=函数(){
这个.延伸({
名称:“baz”,
行动:功能(){
警惕(“吠叫”);
}
});
}
var foo=新条();
console.log(foo.name);
foo.action()现代浏览器有:

var bar=函数(){
对象。分配(此{
名称:“baz”,
行动:功能(){
警惕(“吠叫”);
}
});
};
var foo=新条();
console.log(foo.name);

foo.action()
您可以使用
上的
对象.assign()
来添加默认值

var bar=function(){
对象。分配(此{
名称:“baz”,
行动:功能(){
警惕(“吠叫”);
}
})
}
var foo=新条();
console.log(foo.name);

foo.action()嗯,这是一个很好的解决方案。你会发现,如果有人能超越它,那就是答案。
'3'
请不要鼓励扩展本机原型,这会导致灾难。我不确定你在这里得到的是什么,如果你想将它们用作默认值,你必须在对象的构造函数中定义默认值。返回的对象具有其构造函数为其提供的属性,因此始终存在速记。我们讨论的是某个特定的对象及其构造函数,还是仅仅是一个任意的扩展?@Dellirium它实际上不是一个
扩展
,而是在构造函数函数中定义几个属性,而不是在每个属性中添加
。就像我可以创建一个默认的匿名对象并将其属性复制到我们创建的对象。希望我能清楚地描述我的想法:\耶,这听起来是正确的。唯一的缺点是旧浏览器的兼容性。仍然是一种有效且语义正确的方式。谢谢,这就是我要找的。不幸的是,上面的用户早些时候给出了答案。不过,谢谢你的贡献。
=)
@SLy_-huh,如果你看一下时间戳,你会发现他没有,但是我不想鼓励你改变它,因为Nenad有一个完美的答案,而FGITW是一个改变投票的可怕理由。