I need to declare a lot of object properties in my script and I wonder if the're any way to shorten this:
Core.registry.taskItemSelected;
Core.registry.taskItemSelected.id;
Core.registry.taskItemSelected.name;
Core.registry.taskItemSelected.parent;
Core.registry.taskItemSelected.summary;
Core.registry.taskItemSelected.description;
I need to declare a lot of object properties in my script and I wonder if the're any way to shorten this:
Core.registry.taskItemSelected;
Core.registry.taskItemSelected.id;
Core.registry.taskItemSelected.name;
Core.registry.taskItemSelected.parent;
Core.registry.taskItemSelected.summary;
Core.registry.taskItemSelected.description;
Share
Improve this question
edited Aug 5, 2017 at 20:19
João Pimentel Ferreira
16.3k12 gold badges94 silver badges129 bronze badges
asked May 19, 2011 at 10:28
EdwardEdward
7662 gold badges8 silver badges19 bronze badges
2 Answers
Reset to default 14Wouldn't that work?
Core.registry.taskItemSelected = {
id: null,
name: null,
parent: null,
...
};
Something like this should work:
var props = ["id", "name", "parent", ...];
Core.registry.taskItemSelected = {};
for (var i = 0; i < props.length; i++)
Core.registry.taskItemSelected[props[i]] = "";
Edit: following the OP comments, here is better version with same final result:
Object.prototype.declare = function (varArray) {
for (var i = 0; i < varArray.length; i++) {
this[varArray[i]] = {};
}
};
//usage:
var props = ["id", "name", "parent"];
Core = {};
Core.declare(props);
And live test case as well: http://jsfiddle.net/5fRDc/