📜  解释 JavaScript 中的 call() 和 apply() 方法

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

解释 JavaScript 中的 call() 和 apply() 方法

Call() 方法: call 方法主要用于调用不同this对象的函数。在 JavaScript 中, this指的是一个对象。这取决于我们如何调用特定函数。在全局范围内, this指的是全局对象window 。内部函数this也指全局对象窗口。

在严格模式下,当我们使用任何函数时, this指的是未定义的。在诸如 call 之类的函数中, this 可以引用不同的对象。借助call方法,我们可以调用具有不同对象的特定函数。

句法:

object.objectMethod.call( objectInstance, arguments )

参数:它需要两个参数:

  • ObjectInstance:这是我们要明确使用的对象
  • 参数:我们要传递给调用函数的参数

示例 1:

Javascript


Javascript


Javascript


Javascript


Javascript


输出:

First_name Last_name

很明显,因为我们使用对象 obj 调用 printName()函数,所以this应该引用对象 obj。在对象 obj 中,我们有 firstName = “First_name” 和 lastName = “Last_name”,所以输出是 “First_name Last_name”。

示例 2:众所周知,我们可以使用不同的对象调用特定的函数。所以我们也可以用不同的对象调用 printName函数。

Javascript


输出:

Sachin Tendulkar

在这种情况下,我们使用 call 方法来调用对象 obj2 的函数。所以在这种情况下,将是指对象obj2 。因为这取决于我们实际调用函数的方式。在这种情况下, this不会引用全局对象window ,而是引用对象obj2。

使用调用方法传递参数:我们也可以将参数传递给调用函数。

示例 3:

Javascript


输出:

Sachin Tendulkar Cricketer India

当我们使用 call 方法传递参数时,我们传递以逗号(,)分隔的参数。

Apply() 方法:就像调用方法一样,我们也可以将函数绑定到任何对象。使用 apply() 方法,我们还可以调用具有不同对象的给定函数。

句法:

object.objectMethod.apply(objectInstance, arrayOfArguments)

参数:它需要两个参数:

  • ObjectInstance :这是我们要明确使用的对象
  • 参数:我们要传递给调用函数的参数

Javascript


输出:

Sachin Tendulkar

使用 apply 方法传递参数:我们也可以使用 apply函数传递参数。

Javascript


输出:

Sachin Tendulkar Cricketer India