apply

apply

1.

var a = [1,2,3];

var b = [4,5,6];

a.push.apply(a,b);

console.log(b);

-----------------------

2.

var a = [1,2,3];

        var b = [4,5,6];

        var c=[];

        c = a.push.apply(a,b);

        console.log(c);

----------------

3.

var a = [1,2,3];

        var b = [4,5,6];

b.push.apply(a,b);

        console.log(b);

-----------------------------

请老师解释一下这三种情况,

apply(a,b)中a这个“位置”代表什么意思,因为放a或者b进去 结果都不一样,想知道原理,还是对apply不太理解

 


正在回答

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

2回答

同学你好,问题解答如下:

1.老师上一次说了哦,只要是一个数组就行,没有影响的。

2.因为push是数组的方法,如果调用的不是数组的方法 ,那肯定不能使用数组了。

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

好帮手慕夭夭 2020-03-04 12:17:47

同学你好,apply的第一个参数是设置this的指向。拿第一个案例举例子:

1.apply帮助一个对象调用另一个对象的方法,如下代码中意思就是通过apply方法帮助a调用数组的push方法,然后把b添加到a里面

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

既然是借助apply去调用数组的方法,那么push前面只要是数组就行:

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

第一个参数是a,即空数组调用push时this指向a,那么也就是a调用了push方法,然后把b添加到a里面去。所以输出a为如下:

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

2.如果把第一个参数改为b,则空数组的this指向b,那么就是b调用了push方法,再把b添加到b里面,内容就重复了:

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

输出b:

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

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

  • 提问者 慕瓜9075555 #1
    [].push.apply(a,b);这里[]随便一个数组都可以吗?对结果都没有影响?[]用这个的目的就是因为要调用数组的push方法,如果调用的不是数组方法,前面就不能用数组格式的东西了呗
    2020-03-04 13:53:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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