javascript 对象文字使用它自己的字段

2023-11-29

我想创建一个包含特定组件的整个配置的对象。我也想这样:

var ObjectConfig = {
    fieldKeys : {
        name: "Obj. name",
        state: "Obj. state",
        color: "Obj. color"
    },
    templates : {
        basicTemplate :  [ ObjectConfig.fieldKeys.name, ObjectConfig.fieldKeys.state ],
        altTemplate : [ ObjectConfig.fieldKeys.name, ObjectConfig.fieldKeys.color ]
    }
}

但这以正确的方式去做——它不起作用。我怎样才能实现我的目标?

编辑: 抱歉,我是匆忙手写的,这就是语法错误的来源。现在是正确的了。我得到的错误是Uncaught TypeError: Cannot read property 'fieldKeys' of undefined。我想这样做是不可能的——那么最好的选择是什么?


你的问题是该对象是根据文字构造的before它被分配给ObjectConfig多变的。因此,访问ObjectConfig.fieldKeys文字内部会导致错误。

最好的解决方案是仅构造第一个对象,然后按顺序添加更多属性:

var ObjectConfig = {
    fieldKeys: {
        name: "Obj. name",
        state: "Obj. state",
        color: "Obj. color"
    }
};
ObjectConfig.templates = {
    basicTemplate:  [ ObjectConfig.fieldKeys.name, ObjectConfig.fieldKeys.state ],
    altTemplate: [ ObjectConfig.fieldKeys.name, ObjectConfig.fieldKeys.color ]
};

另一种(较短的)方法是为键对象添加一个额外的变量,该变量在构造模板对象之前分配:

var keys, ObjectConfig = {
    fieldKeys: keys = {
        name: "Obj. name",
        state: "Obj. state",
        color: "Obj. color"
    },
    templates: {
        basicTemplate: [ keys.name, keys.state ],
        altTemplate: [ keys.name, keys.color ]
    }
};

要解决全局范围内的额外变量,您可以使用IEFE。更具可读性的解决方案可能如下所示:

var ObjectConfig = (function() {
    var keys = {
        name: "Obj. name",
        state: "Obj. state",
        color: "Obj. color"
    };
    return {
        fieldKeys: keys,
        templates: {
            basicTemplate: [ keys.name, keys.state ],
            altTemplate: [ keys.name, keys.color ]
        }
    };
})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 对象文字使用它自己的字段 的相关文章

  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • Chart.js 在初始化时设置活动段

    我正在使用 Chart js v2 并且尝试在加载图表时模拟圆环图上某个段的 悬停状态 因此看起来有一个部分已突出显示 我已经搜索和梳理了代码一天 但找不到一个好的方法来做到这一点 提前致谢 设置片段的悬停样式有点令人困惑 因为它没有真正记
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接

随机推荐

  • Fortran 中不区分大小写的字符串比较

    尽管 Fortran 不区分大小写 但我观察到使用以下命令比较字符串时情况并非如此if查看 当然 用户应该意识到这一点 然而 Fortran 不区分大小写 我潜意识里希望同样适用于字符串检查 实现不区分大小写的字符串比较的有效方法是什么 这
  • ld 在 OSX Leopard 上找不到 X11 库

    我有一个在 Linux 上运行的非常基本的 X11 应用程序 我试图在 OSX 10 5 8 下编译它 我已经安装了X11和X11 SDK 并修改了makefile如下 CFLAGS L usr X11 lib I usr X11 incl
  • 如何从DataFrame中获取Array[Seq[String]]?

    如何通过DataFrame cc into Array Seq String val factors ccCols split val cc dataset select factors head factors tail 我尝试过这种方式
  • 扩展 Typescript 中的内置类型

    我有以下结构 project types global d ts string d ts wdio d ts src Models Resources Components Extensions string ts tsconfig jso
  • 使用 CURRENT_TIMESTAMP 的 Rails 5.2 和 Active Record 迁移

    我有一些属性需要有默认值 我已经设置了迁移以在数据库中设置默认值 如下所示 class AddDefaultsToModel lt ActiveRecord Migration 5 2 def change change column po
  • 如何使用 Perl 动态获取 Web 内容?

    这有点棘手 我猜这个网页使用某种 AJAX 来根据搜索查询提取内容 当我在 Perl 中使用 get 获取页面时 它会获取 php html 后面的脚本代码 但不会获取手动搜索查询时显示的结果 我需要能够获取结果页面的内容 无论如何 在 P
  • iOS 中的视频编辑问题

    我目前正在开发一个 iOS 应用程序 它可以合并所需数量的视频 一旦用户点击按钮来合并视频 视频就会被合并 然后使用 AVPlayer 进行播放 如下所示 CMTime nextClipStartTime kCMTimeZero NSInt
  • fetchUuidWithSdp 始终给出缓存的 UUID

    我正在编写一个应用程序 其中我必须在选定的设备上进行服务发现 但每当我执行 fetchUuid 时 它总是为我提供远程设备上缓存的 UUID 这就是我正在尝试的 public boolean UUIDsearch BluetoothDevi
  • Google Cloud Storage Python list_blobs() 不打印对象列表

    我是 Python 和 Google Cloud Storage 新手 我正在编写一个 python 脚本 以使用 Google Cloud Python 客户端库从 Google Cloud Storage 存储桶获取文件列表 而 Buc
  • MvvmCross UITextField 自定义绑定

    所以我试图在 MvvmCross 中实现 UITextField 的自定义绑定 几乎遵循以下方式绑定软件键盘上的 GO 键 即尝试绑定一个文本字段 以便在点击键盘上的 完成 按钮时自动触发事件 因此绑定到ShouldReturn 我还需要绑
  • Neo4j“没有依赖项满足类型类 org.neo4j.kernel.api.index.SchemaIndexProvider”

    Neo4j 社区 2 3 3 Linux Ubuntu 14 04 尝试运行一个使用 Kafka 主题的 Java 应用程序 在查询 Neo4j 时处理其消息 并将它们写入另一个 Kafka 主题 hduser ubuntu java ja
  • GridView - 在空数据源上显示标题

    在 C 中 即使数据源为空 如何仍然显示 gridview 的标题 我不会自动生成列 因为它们都是预定义的 目前我正在做的事情如下 从存储过程中获取 DataTable 然后设置 gridview 的 DataSource 然后调用 Dat
  • 将 css、js 或其他内容从部分视图添加到视图头

    我发现了一些与此相关的问题 但通常有很多不同的答案 而且它们看起来都非常混乱和复杂 如果这就是需要做的 那么好吧 我最好坐下来解决它 我想知道最简单 最有效的方法是将内容从部分视图添加到您的头脑中 我需要这样做的原因是我需要在每个页面上使用
  • 当所有 Readline on('line') 回调完成时退出流程

    我有一个 Node v10 14 1 程序 它使用以下命令逐行读取 CSV 文件读取线接口 My on line is an async回调执行一些从数据库读 写的操作 因此我使用async await来处理承诺 该程序感兴趣的代码块的简短
  • 更新oracle中的json值

    我在表中有一个列以 json 格式存储数据 例如 柱子 select jsoncol from table 它给 y 4 n 0 default 4 当我尝试时 select json value jsoncol n from table
  • 记录集过滤器的问题

    我在旧版 ASP Classic 代码中的 ADO 记录集上使用筛选器时遇到问题 并且我试图了解我想要执行的操作是否不受支持 或者我是否只是做错了 我有一个项目记录集 它们的状态为 1 活动 或 0 非活动 以及一个可选的 End Date
  • 算术赋值运算符 - 左侧仅计算一次

    正如标题所说 我在一些C讲义中发现了这样一句话 我无法发明任何例子来证明这句话 在我看来 每个赋值操作都会被评估一次 因为当我们希望它被评估多次时 我们会放入一个循环中 那我还缺少什么呢 我已经搜索过 但在这里找不到答案 C says C9
  • 删除Python中所有子进程的输出而无需访问代码

    在Python中我正在使用 sys stdout None 在一些我无法控制的电话之前 这些调用可能会调用一些写入标准输出的子进程 如何避免此子进程调用写入标准输出 同样 我不拥有调用子流程的代码的所有权 看来 subprocess Pop
  • Java中两个图像之间的碰撞检测

    我正在编写的游戏中显示了两个角色 玩家和敌人 定义如下 public void player Graphics g g drawImage plimg x y this public void enemy Graphics g g draw
  • javascript 对象文字使用它自己的字段

    我想创建一个包含特定组件的整个配置的对象 我也想这样 var ObjectConfig fieldKeys name Obj name state Obj state color Obj color templates basicTempl