Object 在Vuejs中的对象内部方法中使用“this”关键字

Object 在Vuejs中的对象内部方法中使用“this”关键字,object,methods,vuejs2,vue-component,Object,Methods,Vuejs2,Vue Component,在Vue组件中,我有如下方法 methods: { submitMethod() { let objA = { id: this.id, this.anObject } } } 它给出,语法错误:这是一个保留字 如何在Vue.js中的方法对象中使用对象(在类似数据的地方定义或计算的对象) 一种解决方法是,this.anObject可以指定给局部变量,并在objA中使用该变量,如下所示 submitMethod() { let

在Vue组件中,我有如下方法

methods: {
   submitMethod() {
     let objA = {
       id: this.id,
       this.anObject
     }
   }
 }
它给出,语法错误:这是一个保留字

如何在Vue.js中的方法对象中使用对象(在类似数据的地方定义或计算的对象)

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

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

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

这是因为您的JSON无效。应该是

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

如果可以使用object restSpread操作符,则可以使用它:

methods: {
   submitMethod() {
     let objA = {
       id: this.id,
       ...this.anObject
     }
   }
 }
否则,可以使用Object.assign:

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

我们可以通过将这个关键字复制为局部变量来使用它

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