我的应用有多个屏幕,我想存储对象中每个屏幕的属性。我希望能够通过名称轻松引用它,例如:
var homelabel = screen('home').label;
或
var settingsIcon = screen['settings'].icon;
如何做到这一点?
答案 0 :(得分:1)
let screen = {
"home": {
"icon": "home_icon.png",
"label": "home_label"
},
"settings": {
"icon": "settings_icon.png",
"label": "settings_label"
}
}
console.log(screen["home"].label);
console.log(screen["settings"].icon);

答案 1 :(得分:0)
screen
必须是一个函数,它返回一个传递给函数的对象。您可以将screens
变量移出函数,然后可以通过引用直接访问它。
var screens = {
home: {
label: 'Home',
icon: 'fa fa-home'
},
settings: {
label: 'Settings',
icon: 'fa fa-cog'
}
};
function screen(screenType){
if(screenType in screens){
return screens[screenType];
}
return {};
}
var home = screen('home').label;
console.log(home);
console.log( screens['home'].icon );
答案 2 :(得分:0)
要在你的问题中使用它,创建一个函数并返回一个对象。如果您调用函数的属性不存在,则应返回一个空对象以避免错误。
function screen(prop) {
let obj = {
home: {
label: 'foo'
},
settings: {
icon: 'bar'
}
};
return obj[prop] || {};
}
console.log(screen('home').label); //foo
console.log(screen('foo').bar); //undefined