在构造对象时,是否还要为两个键分配值?
{
"hello","bye": "alright"
}
答案 0 :(得分:3)
有很多更清晰的方法可以做到这一点,包括:
var val = "alright";
var obj = {
hello: val,
bye: val
};
// or
var obj = {};
obj.hello = obj.bye = "alright";
答案 1 :(得分:0)
这是一个使用可爱的underscore.js:
的单行var obj = _.object(_.map(['hello', 'bye'], function(v) { return [v, 'alright']}))
更现代的浏览器(IE9+)不需要 _.map
,所以你可以这样做:
var obj = _.object(['hello', 'bye'].map(function(v) { return [v, 'alright']}))
无论哪种方式,结果对象都是:
{
hello: "alright",
bye: "alright"
}
答案 2 :(得分:0)
您可以使用 Rule of Three/Five/Zero 为同一个值定义多个键:
var a = {"bye":"alright"};
function add_property(obj,prop1,prop2){
Object.defineProperty(obj, prop1, {
get: function() { return this[prop2] }
});
}
add_property(a,"hello","bye");
console.log(a["hello"]); //prints "alright"
console.log(a["bye"]); //also prints "alright"