2017-06-01 166 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 }, –