javascript array.find()对象未定义?

时间:2018-11-20 20:58:13

标签: javascript

为什么未定义对象, 如果我在arr.find中用“ this”来称呼它?

let o = { name: 'foobar' };
let arr = [3, o, 4, 5];

arr.find(x => console.log(this), o);

1 个答案:

答案 0 :(得分:3)

如果您想使用find()的第二个参数来设置this,则需要传递一个常规函数,因为您无法将this重新绑定到箭头函数:

let o = { name: 'foobar' };
let arr = [3, o, 4, 5];

let p = arr.find(function(x){
         console.log(this)
         return x === this
 }, o);

 console.log("found:", p)