オブジェクトの複数の変数を同時に設定する方法はありますか? たとえば、次のコードがあります。
_p.a=1;
_p.b=2;
_p.c=3;
私がやりたいことは、次のようなものです。
_p.[{'a': 1, 'b': 2, 'c': 3}]; // this code does not do the trick
そのようなことをする方法はありますか?
オブジェクトの複数の変数を同時に設定する方法はありますか? たとえば、次のコードがあります。
_p.a=1;
_p.b=2;
_p.c=3;
私がやりたいことは、次のようなものです。
_p.[{'a': 1, 'b': 2, 'c': 3}]; // this code does not do the trick
そのようなことをする方法はありますか?
使用できますObject.defineProperties
:
var _p = {
foo: 'bar'
};
Object.defineProperties(_p, {
'a': {
value: 1,
writable: true,
enumerable: true
},
'b': {
value: 2,
writable: true,
enumerable: true
},
'c': {
value: 3,
writable: true,
enumerable: true
}
});
console.log(_p); //Object {foo: "bar", a: 1, b: 2, c: 3}
オブジェクト _p があり、別のオブジェクト (この場合はリテラル) を使用してそれを拡張したいと考えています。
jquery にはそのためのユーティリティがあります。
http://api.jquery.com/jQuery.extend/
$.extend(_p, {'a': 1, 'b': 2, 'c': 3});
アンダースコアも同様です:
http://underscorejs.org/#extend
_.extend(_p, {'a': 1, 'b': 2, 'c': 3})
次のようなものを使用できると思います。
Object.prototype.setProps = function(props){
for(var i in props){
if(props.hasOwnProperty(i))
this[i] = props[i];
}
}
と:
_p.setProps({a: 1, b: 2, c: 3});