2017-06-01 84 views
0
console.log(this.tiles.find(this.findStart)) 

回報預期的結果更正此值這個「值到第二組代碼?在Vue.js使用find()使用此代碼

+0

findStart是Vue的一種方法嗎? Vue的瓷磚和房間數據屬性? – Bert

+0

是的,findStart是一種方法。瓷磚和房間是數據屬性。 –

+0

所以事實證明,找到方法不是問題。在裝載我運行一個函數,指定this.room.startX = this.getRandom(0,1000);如果我評論這項任務,那麼這個發現完美無缺。那麼this.room.startX實際上被定義爲函數getRandom()?如果是這樣,爲什麼typeOf(this.room.startX)顯示爲「數字」? –

回答

0

經上所記,你的功能不勢必任何特定的語境,所以this將參照window對象,這是最頂部的上下文。

您應該使用Function.prototype.bind使您的功能綁定到您的特定上下文。

console.log(this.titles.find(this.findStart.bind(this))); 
+0

仍然返回undefined。下面是它在chrome devtools控制檯中的樣子: console.log($ vm.tiles.find($ vm.findStart.bind($ vm))); >未定義 也... $ vm.tiles >(8000)[對象,...,對象...] $ vm.room.startX > 610 $ vm.room.startY > 453 console.log($ vm.tiles.find(value => value.x == 2 && value.y == 2)); >對象... //正確迴應 console.log($ vm.tiles.find(value => value.x == $ vm.room.startX && value.y == $ vm.room.startY)) > undefined –

+0

對不起,我的評論格式很糟糕...... –

+0

FWIW,Vue方法在實例化時綁定到Vue實例,所以這不會做任何事情。 – Bert

0

「這」函數內只擁有該函數中的代碼,所以我假設你要撥打的房間變量,但在此之前,你必須綁定「這種」與擁有室內物體的 對象

+0

頂層對象是Vue的實例,然後* .data.room 新的Vue({ EL: '#APP', 數據:{ 室:{ 數:20, STARTX:3, startY:3 }, –