当动态生成javascript对象的密钥时,gulp会中断。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当动态生成javascript对象的密钥时,gulp会中断。相关的知识,希望对你有一定的参考价值。

当我创建javascript对象的动态键时,它会破坏gulp缩小过程。

var a = "custome_name"
var b = {[a]:"myName"}
// {custome_name: "myName"} - works fine but breaks in gulp minification task. 

我可以使用哪种其他语法?

答案

问题是您在对象文字中使用变量(a)作为属性名称。

虽然这对ES6有效,但它不适用于ES5语法。你正在使用的Gulp minifier(大概是Uglify2)不支持缩小ES6语法。

如果你不想使用像Babel这样的转换器将代码从ES6转换为ES5,你可以重写代码来解决这个问题:

var a = "custome_name"
var b = {}
b[a] = "myName"

不是直接使用动态键创建对象,而是先创建一个空对象,然后可以使用动态键和括号将值赋值给它。

→参见相关问题:Using a Variable for a Key in a JavaScript Object Literal

以上是关于当动态生成javascript对象的密钥时,gulp会中断。的主要内容,如果未能解决你的问题,请参考以下文章

仅当特定密钥对值与可迭代匹配时,才在 JSON 对象中获取多个 JSON 密钥对值

Javascript未从动态生成的表单提交数据

使用 javascript 访问动态生成的 HTML 元素的 id 时获取 null

如何在 javascript 上保存 SubscriptionKey

执行动态生成的 Javascript

如何在点击时获取面板的ID,当面板ID是动态生成的