回答
經上所記,你的功能不勢必任何特定的語境,所以this
將參照window
對象,這是最頂部的上下文。
您應該使用Function.prototype.bind使您的功能綁定到您的特定上下文。
console.log(this.titles.find(this.findStart.bind(this)));
仍然返回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 –
對不起,我的評論格式很糟糕...... –
FWIW,Vue方法在實例化時綁定到Vue實例,所以這不會做任何事情。 – Bert
「這」函數內只擁有該函數中的代碼,所以我假設你要撥打的房間變量,但在此之前,你必須綁定「這種」與擁有室內物體的 對象
頂層對象是Vue的實例,然後* .data.room 新的Vue({ EL: '#APP', 數據:{ 室:{ 數:20, STARTX:3, startY:3 }, –
- 1. 幫助使用此代碼
- 2. 如何使用此代碼
- 3. KVO使用此代碼
- 4. 在此代碼段中使用NSThread
- 5. 如何在此代碼中使用「getCharSequence」?
- 6. 在此代碼中使用約pygame.sprite.groupcollide
- 7. 如何在此代碼中使用HostingEnvironment.MapPath()
- 8. 使用此懸停功能> find
- 9. 我需要使用此代碼更改此搜索代碼?
- 10. 無法使用此代碼在強烈簽署的Silverlight代碼
- 11. 通過使用此代碼在viewDidLoad中的代碼
- 12. 如何使用此代碼在tableview中使用搜索欄?
- 13. 使用vue.js
- 14. 使用vue.js
- 15. Vue.js使用json
- 16. 使用vue.js
- 17. 如何在ruby代碼中使用find,-exec和cp命令?
- 18. 此代碼是否可用?使用Javascript/asp.net(代碼不工作)
- 19. 檢查YouTube視頻使用此代碼
- 20. 使用此代碼的對象?處理
- 21. 如何使用此代碼執行@ Html.DropDownListFor?
- 22. 如何使用SubSonic編寫此代碼?
- 23. 如何使用haml編寫此代碼
- 24. 使用%模數理解此Javascript代碼
- 25. 如何使用此複製代碼
- 26. 爲什麼不能使用此代碼?
- 27. 更改此代碼,使用捲曲
- 28. 我不是通過使用此代碼
- 29. 如何使用RSpec測試此代碼?
- 30. 如何使用mysqli編寫此代碼?
findStart是Vue的一種方法嗎? Vue的瓷磚和房間數據屬性? – Bert
是的,findStart是一種方法。瓷磚和房間是數據屬性。 –
所以事實證明,找到方法不是問題。在裝載我運行一個函數,指定this.room.startX = this.getRandom(0,1000);如果我評論這項任務,那麼這個發現完美無缺。那麼this.room.startX實際上被定義爲函數getRandom()?如果是這樣,爲什麼typeOf(this.room.startX)顯示爲「數字」? –