function.call和function.apply有什么区别?

Butterfly 今天,我读了Mark Needham撰写的一篇很棒的博客文章,标题为JavaScript:混淆了'call'和'apply' 。 不久前,我为《 技术时报》通讯撰写了一篇有关JavaScript arguments对象的文章。 之所以称为arguments :JavaScript奇数,是因为它具有各种有趣的行为,这些知识很有用。 我意识到,尽管在那篇文章中我同时使用了callapply ,但是我并没有谈论其中的区别。

嗯,这实际上很简单。 首先,这两种方法都将thisArg作为第一个参数。 这是为函数提供上下文的参数。 它确定在调用或应用的函数内部的JavaScript关键字this的值。 唯一的区别是, call方法要求分别指定参数。 apply方法将它们作为数组。 如果您看到以下语法,则更加清楚:

function.call(thisArg[, argument1[, argument2[, ...]]]);
function.apply(thisArg[, argumentArray]);

因此,如果您在JavaScript中使用arguments对象,则可以使用apply方法调用任何函数,只需将现有的arguments对象作为数组参数传入即可。

希望对您有用!

Sudhamshu的专题图片 你能算出意义吗?

From: https://www.sitepoint.com/whats-the-difference-between-function-call-and-function-apply/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值