javascript find()方法源码中的疑惑

https://img4.mukewang.com/5c4d4e260001f3af07000775.jpg

这是在MDN上copy的find()方法的源码,想请问下代码里var thisArg = arguments[1];中的arguments对应的是哪些值,还有


 if (predicate.call(thisArg, kValue, k, o)) {

          return kValue;

        }  

        

  这部分代码能不能直接写成predicate( kValue, k, o)?


蝴蝶不菲
浏览 576回答 1
1回答

呼啦一阵风

MDN中已经说明了find的参数都有哪些,我截图在这里所以arguments[1]也就是这个参数,这个参数在find使用时可以不写这也就解释了为什么下边要用call,不直接用predicate(kValue, k, o)因为这个thisArg参数的存在,你就不能确定predicate这个函数是谁调用的,所以需要用callvar thisArg = arguments[1]假如没有第二个参数,thisArg就会是undefined如果thisArg为null/undefined,将执行js全局对象,浏览器中是window,其他环境是global也就是说,没有第二个参数,才会执行window上的predicate函数
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript