调用 vs调用函数

到目前为止,我认为“调用”和“调用”一个函数意味着同样的事情。然而,在一个 YouTube 教程中,它说通过调用它来调用一个函数。我的第一个想法是措辞是错误的,但是在 W3Schools 的page关于函数调用,它说:

到目前为止,我认为“调用”和“调用”一个函数意味着同样的事情。然而,在一个 YouTube 教程中,它说通过调用它来调用一个函数。我的第一个想法是措辞是错误的,但是在 W3Schools 的page关于函数调用,它说:

通常使用术语“调用函数”而不是“调用函数”...在本教程中,我们将使用 invoke,因为可以在不被调用的情况下调用 JavaScript 函数。

好吧,所以有区别。什么事?

37

您的参考文本:

通常使用术语“调用函数”而不是“调用函数”...在本教程中,我们将使用 invoke,因为可以在不被调用的情况下调用 JavaScript 函数。

现在让我重新措辞一下:

在本教程中,我们将使用术语invoke而不是call,因为 JavaScript 函数可以像fn.call()fn.apply()一样被间接调用,而不像fn()直接调用。

所以,当我做fn()时,它被直接调用,当我像fn.call()一样,它被间接调用,但在这两种情况下,函数都被调用。

fn(); // I'm calling it
fn.call(); // I'm calling it
fn.apply(); // I'm calling it

所以,区别是语义的,但两者都是可互换的,IMO.BTW,我在上面写了一个评论,在这个问题下,我想把它放在这里,这是:

IMO,这是一个误导性的陈述。也许有一些呼叫 / 应用或其他的迹象,但它完全令人困惑。

24

区别是语义和微妙的。当你调用一个函数时,你直接告诉它运行。当你调用一个函数时,你让一些东西运行它。

有一种方法可以调用函数:

myFunction()

在这里,您通过直接调用它来调用函数(让它运行)。

有很多方法可以调用函数(在不同的注释和答案中给出)。

function invoker(functionName) {
  functionName() 
}
invoker(myFunction)

在这里,通过调用invoker,您正在调用myFunction,这是间接调用的。

5

是的,在大多数情况下,我们使用两者来引用函数的执行。

从您的HOME到达地点B有 2 种方法。

直接 / 自动方式(Invoke),即如果您选择第一种方式,则无需步行。有人会自动将您带到B的地方。

间接方式(Call),即如果选择第二种方式,则只需到达A(步行)。有人在A处自动将您带到B处。

看看下面的图片。我想它会消除你的疑问。

调用的情况下,您最初引用实际调用该函数的语句。

Invoking的情况下,间接引用调用语句来实际调用 / 运行函数。

3

许多人使用术语调用和调用可互换,但这是不对的。调用和调用函数之间有很小的区别。在 JavaScript 中,函数可以在不被调用的情况下被调用,这意味着函数体内的代码可以在不为其创建object的情况下执行。它绑定到全局对象。当没有单个对象时,this的值与全局对象相关联。

callapply之间也有区别,根本的区别是 call () 接受一个参数列表,而 apply () 接受单个参数数组。调用现有函数时可以分配一个不同的this对象。this指的是当前对象,即调用对象。用call重写一次,你可以在另一个方法

因此,调用和调用之间的主要区别在于this对象。调用让我们设置this值,而调用只是将其绑定到全局对象。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(706)
VisualStudioALT代码符号
上一篇
在 R中将平均值插入散点图
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(48条)