Javascript增加对象中变量的值

时间:2019-01-14 11:06:57

标签: javascript object

let myPos = 0
let load = new Riload({
    el: '#loadMyArticle',
    url: '../users/myArticle',
    data: 'myPos='+myPos,
    sukses: () => {
        myPos = myPos + 1
        console.log(myPos)
    }
})

我有myPos变量,默认值为0。如果加载函数成功运行,则myPos将在每个回调中增加+1。我的问题是,如果我在sukses回调中运行console.log(myPos),它可能会增加。但是,“数据”属性中的myPos仍为0。如何在数据属性中增加此变量?

2 个答案:

答案 0 :(得分:1)

let myPos = 0
let load = new Riload({
  el: '#loadMyArticle',
  url: '../users/myArticle',
  data: '',
  sukses() {
    this.incrementPos()
  },
  incrementPos() {
    myPos += 1
    this.setData()
  },
  setData() {
    this.data = `myPostTracker = ${myPos}`
  }
})

通过data函数访问setData属性,可以随意设置属性。我还向对象添加了incrementPos函数,因此可以独立于success(或sukses)生命周期回调来调用它。

我希望这对您有帮助-最初,当您调用sukses时,确实确实在增加myPos变量,但是没有重置data属性,因此您所引用的myPos变量您的字符串连接中没有更改/更新。

let initPos = 0

const obj = {
  myPos: initPos,
  data: '',
  success() {
    this.incrementPos()
  },
  incrementPos() {
    initPos += 1
    this.myPos = initPos
    this.setData()
  },
  setData() {
    this.data = `myPostTracker = ${this.myPos}`
  }
}


obj.success()
console.log(obj.data)

obj.incrementPos()
console.log(obj.data)

obj.incrementPos()
console.log(obj.data)

obj.incrementPos()
console.log(obj.data)

myPos对象上没有obj属性的情况下可以完成此方法。

let myPos = 0

const obj = {
  data: '',
  success() {
    this.incrementPos()
  },
  incrementPos() {
    myPos += 1
    this.setData()
  },
  setData() {
    this.data = `myPostTracker = ${myPos}`
  }
}


obj.success()
console.log(obj.data)

obj.incrementPos()
console.log(obj.data)

obj.incrementPos()
console.log(obj.data)

obj.incrementPos()
console.log(obj.data)

答案 1 :(得分:0)

这仅仅是概念的一个例子。在“ sukses”回调期间访问您新创建的对象,并从那里更新“ data”字段

let myPos = 0 
let load = new Riload({
    el: '#loadMyArticle',
    url: '../users/myArticle',
    data: 'myPos='+myPos,
    sukses: () => {
        myPos = myPos + 1
        load.data = 'myPos='+myPos
        console.log(myPos)
    } })