这里用arr1不报错没问题,问题是改为this这么就错了?push方法也是arr1调用的吧?

这里用arr1不报错没问题,问题是改为this这么就错了?push方法也是arr1调用的吧?

正在回答

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

2回答

同学你好,关于同学的问题回答如下:

1、理解的是不正确的,下面这个this就是指向window:

http://img1.sycdn.imooc.com//climg/5f196bf90956b81f05440172.jpg

2、apply()方法的第一个参数,是this的指向,即给谁添加元素。同学如果传入this的话,那就是给window添加元素,即window调用push方法,所以是不可以的。

3、这里改变this的指向,同学理解反了,是改变arr1中的this,让其指向了全局的window,而非改变window指向arr1。

  • 大白前端 提问者 #1
    所以老师 Math.max.apply(this,arrary);这个this不是指向调用者max,而是指向window对吗?
    2020-07-23 19:03:59
  • 大白前端 提问者 #2
    谢谢老师 是我理解的不够透彻
    2020-07-23 19:28:13
好帮手慕粉 2020-07-23 18:02:29

同学你好,关于同学的问题回答如下:

1、这里我们是要拼接arr1和arr2两个数组。当前练习中借助了apply方法,第一个参数是被添加的数组,第二个参数是添加的数组。apply(num1,num2)这样是将num2数组放进num1数组中。如果同学第一个参数传递this的话,那么就是将window对象传了进去:

http://img1.sycdn.imooc.com//climg/5f195f2b09ac21ce05310103.jpg

http://img1.sycdn.imooc.com//climg/5f196006091348d008430056.jpg

window跟arr1是没有关系的,所以不能传this。

2、push方法是arr1调用的。

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

  • 提问者 大白前端 #1
    老师 在全局作用域下 this指向的是window 这个我知道 但是这里不是arr1调用了push和apply方法吗?那this指向不是应该指向arr1吗?
    2020-07-23 18:13:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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