首页 > 解决方案 > javascript array.find() 对象未定义?

问题描述

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

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

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

标签: javascript

解决方案


如果要使用设置的第二个参数,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)


推荐阅读