使用'这个' Vuejs中方法内对象中的关键字

时间:2017-10-24 17:41:39

标签: object methods vuejs2 vue-component

在Vue组件中,我有一个如下所示的方法

methods: {
   submitMethod() {
     let objA = {
       id: this.id,
       this.anObject
     }
   }
 }

它给出了,语法错误:这是一个保留字。

如何在Vue.js中的方法对象中使用对象(在data()或computed等地方定义?

一个解决方法是,this.anObject可以分配给局部变量并在objA中使用该变量,如下所示

submitMethod() {
    let anObject = this.anObject
    let objA = {
        id: this.id,
        anObject
     }
}

但是,有没有办法直接在objA中使用this.anObject?

3 个答案:

答案 0 :(得分:1)

如果您可以使用对象restSpread运算符,则可以使用它:

methods: {
   submitMethod() {
     let objA = {
       id: this.id,
       ...this.anObject
     }
   }
 }

否则,您可以使用Object.assign:

methods: {
   submitMethod() {
     let objA = Object.assign(this.anObject, {
       id: this.id,
     })
   }
 }

答案 1 :(得分:0)

那是因为您的JSON无效。它应该像

let objA = {
    id: this.id,
    anObject: this.anObject
}

答案 2 :(得分:0)

我们可以在复制此关键字作为局部变量的帮助下使用此关键字。

methods: {
  submitMethod() {
    let _this = this;
    let objA = Object.assign(this.anObject, {
       id: _this.id,
    })
  }
}