函数.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])