push,apply,call 分别是被什么调用啊?晕乎乎的

push,apply,call 分别是被什么调用啊?晕乎乎的

 var arr1=[1,2,3],arr2=[4,5,6];

      [].push.apply(arr1,arr2)

      console.log(arr1)

      console.log(arr2)


正在回答

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

2回答

同学你好,描述不太准确,call和apply的作用是调用函数或方法,即语法是“方法.call()”、“方法.apply()”,比如方法名是fn,那么它们的作用就是让fn调用,而不是fn调用call/apply。

祝学习愉快!

好帮手慕星星 2020-09-11 19:22:17

同学你好,代码实现效果正确。

针对提问回复:

push方法是数组中的,所以通过[].push()去调用,但是如果这样写,就会将arr2整个数组添加到arr1数组中

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

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

和我们想要的不太符合。所以借助了apply方法,第一个参数是对象,第二个参数是数组

    [].push.apply(arr1,arr2)这样写就可以将arr2数组中各项添加到arr1数组中,前面是数组调用push方法就可以。

另外call方法和apply方法类似,第一个参数是对象,第二个参数是各项内容(不是数组),所以这里不能使用。例如

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

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

自己测试理解下,祝学习愉快!

  • 提问者 慕哥5103152 #1
    call,apply 方法是用函数和方法调用吗?
    2020-09-11 19:32:29
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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