【问题标题】:Function theory in javascript - what does this return [duplicate]javascript中的函数理论 - 这会返回什么[重复]
【发布时间】:2020-04-25 00:57:20
【问题描述】:

我仍在努力掌握函数定义:我是否正确地说 this 返回了一个未定义的类型?

function foo() {
  return
  {
    car: 'Audi'
  };
}

【问题讨论】:

    标签: javascript


    【解决方案1】:

    由于自动分号插入,它返回undefined。这是 ASI 的主要危害之一。在return 之后有一个换行符使其被视为return;。所以你的代码最终是:

    function foo() {
      return;         // <=== Function returns here
      {               // \
        car: 'Audi'   //  > This is a freestanding block with a labelled statement which is the expression 'Audi'
      };              // /
    }
    

    删除换行符并返回一个对象:

    function foo() {
      return {
        car: 'Audi'
      };
    }
    

    这就是为什么在事物上加上开头{ 是 JavaScript 的标准做法,甚至比其他类似 C 的语言更是如此。

    【讨论】:

      【解决方案2】:

      Javascript 假定 returnreturn;,如果你想返回任何值,它应该与 return 在同一行。

      如果你在执行这个函数foo时得到undefined,那是因为函数本身在return返回,要获取对象作为返回值,修改你的函数为

      function foo() {
        return {
          car: 'Audi'
        };
      }
      

      【讨论】:

        猜你喜欢
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 2017-02-11
        • 2019-04-30
        • 2021-12-25
        • 2020-06-17
        • 2023-01-01
        • 1970-01-01
        相关资源
        最近更新 更多