为了账号安全,请及时绑定邮箱和手机立即绑定

js一个call和apply的问题?

js一个call和apply的问题?

温温酱 2018-11-22 14:09:20
Array.call(null,{length:3}//返回[{length:3}]Array.apply(null,{length:3})//返回[undefined, undefined, undefined]call和apply都是改变this指向,到这里结果却不一样,诡异了
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

写这里,方便看。

call:
第一个是直接传对象进去;

apply:
第二个是当成数组长度为3的数组,但没有值,所以undefined
{length: 3} => {length: 3, 0: undefined, 1: undefined, 2: undefined }
所以输出3个undefined

call接受的是连续参数,apply接受的是数组参数。
A.call(this, a,b,c,d)
A.apply(this, [a,b,c,d])


查看完整回答
反对 回复 2018-12-17
  • 1 回答
  • 0 关注
  • 422 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号