forEach是函数中的this是谁

forEach是函数中的this是谁

s.forEach();函数调用,this指向调用对象,所以函数作用域中this是s,对吧。如果forEach里第一个参数是箭头函数,箭头函数的外层作用域应该是forEach函数作用域,那么this应该是s,但是选择题显示this指向window,不太理解

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,forEach方法接收两个参数,第一个参数是回调函数,第二个参数指定了回调函数中(此时回调函数指的是普通函数)的this指向,如果回调函数是箭头函数的话,那么此时传不传第二个参数都不会影响箭头函数内部的this指向,因为箭头函数中的this指向该函数定义时所在作用域指向的对象,而不是使用时所在的作用域指向的对象。

代码中的箭头函数是在全局作用域中定义的,此时的this指向window

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 嗯嗯_ 提问者 #1
    好的,课件老师讲这段的时候,讲的不太对,他的意思依然按照作用域链找this
    2020-09-30 16:36:39
一路电光带火花 2020-09-30 13:46:08

this指向函数的调用者,不过像forEach方法,内部的this并不会指向调用者,指向的是window,箭头函数或者普通函数都会指向window,你看看例子

 var arr = [1, 2, 3]

        arr.forEach(() => {

            console.log(this)

        })

        arr.forEach(function () {

            console.log(this)

        })



  • 提问者 嗯嗯_ #1
    我知道这个例子,我问就是这个例子this为什么指向window,它和之前学的知识不一样,我要问的就是,是不是我对之前的知识理解不准确,还是这个地方有新知识
    2020-09-30 14:03:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师