📜  函数.prototype.apply 和函数.prototype.call 的区别

📅  最后修改于: 2022-05-13 01:56:38.861000             🧑  作者: Mango

函数.prototype.apply 和函数.prototype.call 的区别

JavaScript 将一切都视为对象,甚至函数,每个对象都有自己的属性和方法。函数对象同时具有 apply() 和 call() 方法。但是,JavaScript 中的这两个函数存在混淆。它们之间的主要区别在于它们如何处理函数参数。这两个函数在参数如何传递给被调用函数方面没有区别,但函数内部的定义不同。

除了第一个参数, apply() 需要一个数组作为其第二个参数。目标方法的参数表示为一个数组。

JavaScript call()函数:它使用给定的参数和值来调用函数

句法:

function.call(object, arg1, arg2)

例子:

HTML


HTML


输出:

Welcome to geeksforgeeks

JavaScript apply()函数:此方法用于调用具有参数和值作为数组或数组对象的函数。

在这两种情况下,第一个参数都是在被调用函数中表示“this”的对象引用。因此, call()apply()不同。每个都可以应用于一个函数,该函数在第一个参数的上下文中运行。在call()中,剩余的参数按原样传递给函数,而在apply()中,第二个参数将是一个数组,被调用的函数将作为参数解包。

句法:

function.apply(object, [arg1, arg2])

例子:

HTML


输出:

Welcome to geeksforgeeks

函数.prototype.apply 和函数.prototype.call 的区别:

Function.prototype.apply()Function.prototype.call()
Using the apply() method, one can call a function with a specified value as well as arguments provided in the form of an array (or object).  Using call(), a function is called with the given value and arguments.  
function.call(object, arg1, arg2)function.apply(object, [arg1, arg2])