Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何构造对象数组,以便以这种方式引用属性?_Javascript - Fatal编程技术网

Javascript 如何构造对象数组,以便以这种方式引用属性?

Javascript 如何构造对象数组,以便以这种方式引用属性?,javascript,Javascript,我的应用程序有多个屏幕,我想在一个对象中存储每个屏幕的属性。我希望能够通过名称方便地引用它,例如: var homelabel = screen('home').label; 或 如何实现这一点?屏幕必须是一个函数,该函数返回一个对象,其中包含传递给该函数的任何内容。您可以将screens变量移出函数,然后可以通过引用直接访问它 变量屏幕={ 主页:{ 标签:“家”, 图标:“fa fa home” }, 设置:{ 标签:“设置”, 图标:“fa-fa-cog” } }; 功能屏幕类型{ i

我的应用程序有多个屏幕,我想在一个对象中存储每个屏幕的属性。我希望能够通过名称方便地引用它,例如:

var homelabel = screen('home').label;

如何实现这一点?

屏幕必须是一个函数,该函数返回一个对象,其中包含传递给该函数的任何内容。您可以将screens变量移出函数,然后可以通过引用直接访问它

变量屏幕={ 主页:{ 标签:“家”, 图标:“fa fa home” }, 设置:{ 标签:“设置”, 图标:“fa-fa-cog” } }; 功能屏幕类型{ ifscreen输入屏幕{ 返回屏幕[屏幕类型]; } 返回{}; } var home=屏幕“主页”。标签; 控制台.loghome; console.log屏幕['home'].图标 让屏幕={ 主页:{ 图标:home_icon.png, 标签:主页标签 }, 设置:{ 图标:设置\u icon.png, 标签:设置\u标签 } } console.logscreen[home]。标签;
console.logscreen[设置]。图标 要解决这个问题,请创建一个函数并返回一个对象。如果调用函数时使用的属性不存在,则应返回空对象以避免错误

功能屏幕道具{ 设obj={ 主页:{ 标签:“foo” }, 设置:{ 图标:“酒吧” } }; 返回obj[prop]|{}; } 控制台。日志屏幕“主页”。标签//福
控制台.日志屏幕'foo'。栏//Undefinedy您可以将screen设置为对象,然后像screen['home']或screen['settings']那样访问它,除非您讨论的是不同的html页面,否则这是不同的问题screen需要是一个返回对象的函数。不,没有涉及数组。关于screen.home.label或screen.settings.icon,这是普通对象的开箱即用行为。如果您需要括号,screen必须是一个函数。我更喜欢字符串,因为我的HTML元素将具有类似于data target='home'的内容,并且很容易调用l screen[$this.data'target']。label您也可以使用常规的旧对象来实现这一点。例如屏幕['home'].标签
var settingsIcon = screen['settings'].icon;