问题标签 [object-literal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
197 浏览

javascript - 在 javascript 中,是否可以构造一个对象文字,其表达式为属性名称的字符串?

即是否可以这样做:

0 投票
1 回答
157 浏览

javascript - 为什么我不能将一个对象的方法保存为另一个对象字面量的属性

下面的代码用于记录一些在特定情况下运行的方法,以便可以使用更简单的语法调用它们。

但是代码一直返回一个空对象。我已经用 console.log 检查了这些方法是否已定义。我还尝试过更改名称,调用一个空对象,然后将属性添加为例如 callbacks.alter,并尝试了其他无关紧要的更改。

为什么这行不通?

演示

错误出现在puzzle.js 的第 238 行

0 投票
3 回答
9490 浏览

javascript - javascript中的动态对象文字?

是否可以动态创建对象文字?像这样:

因此我希望结果是这样的:

0 投票
16 回答
257905 浏览

javascript - 如何在 JavaScript 对象文字中使用变量作为键?

为什么以下工作?

而这不起作用:

为了更清楚:目前我无法将 CSS 属性作为变量传递给 animate 函数。

0 投票
5 回答
8873 浏览

javascript - 为什么有些对象文字属性被引用而有些则没有?

我一直看到这一点:声明的对象文字使得一些键用引号括起来,而另一些则没有。来自 jQuery 1.4.2 的示例:

将前两个属性键 (forclass) 用引号括起来,而其他的不带引号有什么意义?有什么区别吗?

我一直在研究ECMAScript 5 规范;我所能找到的只是[第 15.12.3 节的注释 6,强调我的]:

注 6 对象呈现为左大括号后跟零个或多个属性,用逗号分隔,右大括号关闭。属性是一个带引号的字符串,表示键或属性名称、冒号,然后是字符串化的属性值。数组呈现为左括号,后跟零个或多个值,用逗号分隔,用右括号关闭。

但是,这仅指JSON的字符串化。

0 投票
4 回答
244 浏览

javascript - 使用字符串 string 和 eval 以及多个函数和各种方式传递未知数量的变量

简而言之,我想使用对象文字来允许我以任意顺序将未知数量的变量传递给函数。虽然这在理论上没什么大不了的,但在我的代码中,这个对象字面量被传递给名为on_change.

on_change通过将元素的 innerHTML 与字符串进行比较来工作;如果相同,则设置超时以再次调用该函数。如果元素的 innerHTML 与字符串不同,则执行第三个参数,这将是一个函数或字符串。无论哪种方式,它都会执行。我已经对这个功能进行了大量测试并使用了一段时间。

但是,我似乎无法让对象文字流经函数调用......

我将此称为表单提交的一部分。在这一行之后,我调用一个函数来通过 ajax 加载一些内容,它工作正常并且会从on_change函数中触发代码。

我已经测试了这个load_xml功能,它能够调用alert(param.xpos)并得到正确的响应。我什至可以添加一个未定义的检查,这样我打电话的其余时间load_xml就不会被警报淹没。

load_xml函数首先设置on_change函数,然后调用该函数将内容加载到隐藏的 div。一旦 AJAX 请求更新了该 DIV,该on_change函数现在应该调用该parse_xml函数。这会从 xml 文件中提取信息。然而......这个对象文字参数的想法是它可以告诉这个parse_xml函数忽略某些事情。

这是 的一部分load_xml,即使有参数位,它也可以正常工作。除了,parse_xml似乎无法使用该参数。

我已经能够做到这一点,parse_xml可以alert(param)并给出[object object]我认为意味着对象文字已经通过的地步,但是当我尝试调用时,alert(param.xpos)我得到了未定义。

我知道这是一个问题,我可以通过让函数采用数不胜数的布尔参数来解决它,但这并不是一个很好的解决方案。

0 投票
4 回答
5242 浏览

javascript - 这个 Javascript 对象文字键限制是否严格归因于解析?

请参考下面的代码,当我“注释”任一注释掉的行时,它会导致“':'预期”的错误(在 IE 中)。那么我的结论是正确的,即无法提供对对象值的引用,作为字符串文字中的对象键;这严格来说是解释器/解析问题吗?与 Crockford 的“好部分”相比,这是 Javascript 的一个糟糕(或至少“坏”)“部分”的候选者吗?

0 投票
4 回答
100740 浏览

javascript - 使用属性名称的变量创建对象

是否可以在对象文字属性中使用变量名来创建对象?

例子

0 投票
3 回答
667 浏览

javascript - Javascript 对象文字:为什么我不能这样做?

我有以下(简化的)对象文字。icons 方法使用闭包来隐藏 icons 变量,我希望将其作为关联数组用于以后的查找。

我将项目添加到图标对象,如下所示:

以下不起作用:

但这确实:

在闭包之外,关联数组样式可以正常工作,所以可能与 jQuery 有冲突?我在 firebug a 中遇到的错误是未定义的,看起来来自库。我想保持关联数组样式。

有任何想法吗?

更新

看起来这个冲突来自谷歌地图。奇怪,不知道解决这个问题的方法。

笨蛋更新

返回基本 GIcon() 对象的对象文字部分根本没有返回对象。因此,该对象没有正确的属性。

而且 MapListings.baseIcon 与 MapListings.baseIcon() 不同!德欧

0 投票
8 回答
22561 浏览

python - 对象文字是 Pythonic 的吗?

JavaScript 有对象字面量,例如

.NET 有匿名类型,例如

类似的东西可以在 Python 中通过(ab)使用命名参数来模拟:

用法:

但是这种代码是否被认为是 Pythonic 的?