javascript - 如何在对象解构赋值的左侧使用它?

标签 javascript ecmascript-6 vuejs2

(这个问题不是Vue特有的,但它是在Vue项目中,这就是为什么在函数和变量前面奇怪地使用this。)

我有一个函数,它返回一个对象,该对象被解构为两个变量:

  const { primaryNumber, typeOfExpression } = this.findPrimaryAndType(
    this.naturalExpressionYearOfBirth,
    this.gender,
  );

我不再希望变量为 primaryNumbertypeOfExpression,我希望它们为 this.primaryNumberthis.typeOfExpression 指的是我的 View 数据部分。

我使用下面的代码找到了一个糟糕的解决方法:

  this.primaryNumber = primaryNumber;
  this.typeOfExpression = typeOfExpression;

但这并不是最好的方法!我应该怎么办?如果我在 {} 内的变量前面添加 this ,则会收到错误,如果我删除 const,它不会接受 =谢谢。

最佳答案

您可以拼出解构目标,而不是隐式创建 const 变量:

({
  primaryNumber: this.primaryNumber,
  typeOfExpression: this.typeOfExpression
} = this.findPrimaryAndType(
  this.naturalExpressionYearOfBirth,
  this.gender,
));

当然,这对于简洁性来说没有多大帮助。如果这两个属性是结果对象上唯一的属性,则您可以使用 Object.assign:

Object.assign(this, this.findPrimaryAndType(
  this.naturalExpressionYearOfBirth,
  this.gender,
));

关于javascript - 如何在对象解构赋值的左侧使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50643463/

相关文章:

javascript - 如何拥有一个属于某物属性的类?

javascript - 如何复制数组的最后一个元素?

javascript - 如何调用 Vuejs 实例声明的函数?

javascript - 带变量的跨浏览器 CSS3 转换 jQuery 函数

javascript - 如何防止移动端Chrome的下拉刷新

javascript - 如何从文件中导出多个对象

javascript - Vue.js 中的 Messenger 扩展并将其数据用作全局变量

css - 如何从 JS 访问作用域关键帧

javascript - 如何从 HTMLCollection 中删除一个项目?

javascript - 在点击位置打开弹出窗口