【问题标题】:Method of calling functions in JavaScript [duplicate]JavaScript中调用函数的方法[重复]
【发布时间】:2014-04-10 12:17:23
【问题描述】:

所以,假设我有一个小程序,它给用户一个提示说你好,这是一个函数内部。每个人都说你应该这样调用函数:

var thefunct = awesomefunct();

但它仍然可以像这样完美地工作:

awesomefunct();

两者有什么区别,为什么我不能只使用第二个?我知道这两种方法都有效,但我所有的程序员朋友都告诉我使用第一种。为什么?

【问题讨论】:

  • 我不知道你在这里问什么。
  • 我要问的是:在 JavaScript 中调用函数有两种不同的方法。 (两者都在我的问题中列出。)通常使用哪种方法更好,如果是,为什么?

标签: javascript function


【解决方案1】:

如果你运行

awesomefunct()

你调用函数。所以当你输入:

var thefunct = awesomefunct();

您运行函数并将结果分配给函数变量。

然后输入

thefunct

不会调用函数。所以除了你在第一个 1 上捕获返回值之外,这 2 之间没有太大区别。

【讨论】:

  • 好吧,我是一个 JS 菜鸟,所以我的一些代码可能会关闭。
  • 如果你愿意,你可以做的是“var thefunct = awesomefunct;” (没有 () )然后您可以稍后通过键入 thefunct().. 来调用该函数。这样您就可以创建一个别名。
【解决方案2】:

不同的是,第一个函数的return语句会被赋值给变量thefunct,而第二个只是运行函数,不存储return语句。

假设我有这样的功能:

function doSomething(a, b) {
    return (a*b)
}

将结果存储在变量中是个好主意,因为函数返回结果,它不会将其分配给先前声明的全局变量。

【讨论】:

    【解决方案3】:

    你关心返回值吗?使用:

    var thefunct = awesomefunct();
    

    不关心返回值?使用:

    awesomefunct();
    

    【讨论】:

      【解决方案4】:

      您可能误解了您的代码在做什么。

      thefunct不是调用函数awesomefunct,你写var thefunct = awesomefunct();的时候你的函数已经被调用了,在这种情况下thefunct现在包含awesomefunct的返回值

      【讨论】:

      • 我稍微编辑了我的问题以消除您提到的这个错误。
      【解决方案5】:

      第一种函数调用:

      awesomefunct();
      

      运行函数,但返回值(如果有)没有存储在任何地方。

      第二种函数调用:

      var thefunct = awesomefunct();
      

      运行函数,并将函数返回的任何内容(0,“我很棒”,一个对象,无论它可能是什么)存储在变量 thefunct 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-10
        • 2012-02-10
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        • 2013-04-19
        • 1970-01-01
        • 2011-04-15
        相关资源
        最近更新 更多