最近在做一個支付寶小程序,支付寶小程序現在還處在一個內測的狀態,還沒有公測,官方文檔API沒有微信給的那么全,所以我也算第一批接觸支付寶小程序的開發者了,很榮幸,今天講下我對var that = this這行代碼的理解,這行代碼就能解決上述的問題,還可以用ES6的箭頭函數,這兩種辦法都是可以解決上述問題的報錯。
為什么會出來這個問題呢?在小程序中你要向后台發起Http請求,把請求的數據放在page中的data里面,那你首先得拿到page中的data,我們所想的是在函數里面直接用this.setData就能搞定
這是我自己的一個項目,需要在后台請求個數據,然后報錯啦
為什么呢? 因為現在這個this指向的是complete這個函數,我們要的是他指到Page里面的data,
我們只用在OntitleClick事件里面加上var that = this;就行了
因為在調用 OntitleClick() 之前就已經把 this 復制了一份保存在 that 變量中,你復制的這個this是指向的page中data,那你相當於用這行代碼搭了個橋,讓that.setData指向了Page中的data
2.用箭頭函數一樣好使
這樣和上面是一樣的,我在慕課上面看到有人說箭頭函數不能操作Page中的data,????excuseme?反正本人親自測驗沒毛病