javascript - 从变量创建对象 ES6

标签 javascript node.js ecmascript-6

我在 ES5 代码中有一个 var,如下所示。

  var options = {
  clientId : clientId
  keepAlive : keepAlive,
  clean : clean,
  reconnectPeriod : reconnectPeriod,
  will : lastWillMessage
};

我可以通过说

将其更改为 ES6
let options = {clientId,keepAlive,reconnectPeriod,lastWillMessage};

但是如果我不想为所有属性传递值,我该怎么做呢?例如,我只想传递 clientId 和 keepAlive。 Rest 将具有 MQTT 模块设置的默认值。那么我怎样才能只为这个对象的某些属性设置值呢?

最佳答案

我不确定这是否能回答您的问题,但 Object.assign 可能会有所帮助:

var options = getOptionsFromMQTT();

Object.assign(options, {options, {clientID, keepAlive});
// options now uses whatever values are assigned to clientID and keepAlive

更多来自 MDN:

The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

关于javascript - 从变量创建对象 ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200744/

相关文章:

javascript - 动态替换大列表的内容

javascript - 在 jQuery 中,如果我有一个开始和结束类,我如何用一个 div 包装多个元素

node.js - Nodejs 中的错误处理

javascript - 声明对象文字时出现意外的标识符错误

javascript - 两个肥箭相随

javascript - 使 Qt QWebView Bridge 可从 Webkit IFRAME(本地页面)访问的技巧

javascript - npm 不会从项目中的 package.json 安装

javascript - 如何在 IE11 上加载也适用于常青浏览器的 Polymer 元素?

javascript - 来自 API 的 Promise.all 拒绝

javascript - Jquery 正则表达式