局部函数声明应该放在&;return&;之前或之后

Local function declarations should be put before or after "return"

本文关键字:return 或之后 声明 函数 局部      更新时间:2023-09-26

优点和缺点是什么?对于这种情况是否有共识或良好的做法?
这方面的工具、代码约定和标准指南是怎么说的呢?

function before(){
  // declare variables
  function x(){
  }
  // do stuff
  return x();
}
function after(){
  // declare variables
  // do stuff
  return y();
  // ------------------------
  function y(){
  }
}

另一个例子:

var Person = function(name) {
  var person = {
    name: name,
    smile: smile,
    talk: talk
  };
  // here alongside function execution?
  function talk() {
  }
  return person;
  // or here, after return statement?
  function smile(){
  }
};

这是个人的选择,双方都有好的一面。

在后一种情况下,当开发人员需要在源文件的顶部快速阅读函数是如何调用的,而不需要向下滚动并阅读有关函数实现的详细信息时,它是有用的。

在angular js中绑定成员时,要遵循与第二种风格相近的样式。这里是angular js如何在顶部绑定成员的推荐样式指南的链接

由于函数被提升到作用域,因此没有真正的区别,只有偏好。
return的自然位置在末尾,那么为什么不在那里呢?