属性 名称与非匿名函数相同

Property name same as non anonymous function

为了更好的调试目的,我想使用非匿名函数,但遇到了以下问题。

当我有一个返回方法对象的函数时(比如在 angularjs 工厂中),将返回的 属性 和函数命名为相同的名称是不是不好的风格?

点赞:

angular
    .module('myModule', [])
    .factory('foobar', foobar);

function foobar() {
    return {
        foo: function foo() {console.log('foo')},     //Is this ok
        bar: function barFunc() {console.log('bar')}  //Or this way better
    }
}

最好的方法是这样的:

function foobar() {
  return {
    foo() { console.log('foo') }
  };
}

这不是风格问题,也没有确定的答案。肯定没有错 将函数表达式命名为 属性。

但是,您的目标是获得更好的调试体验。所以您应该问问自己:“什么名称最能帮助我通过名称识别代码中的函数?”。无论是 foofooFuncfoobar_foo(包括模块名称)还是其他任何内容,您都必须自己决定。

这两个选项都很好 - 唯一的区别是在调试时您会看到函数的名称而不是 anonymous function,这非常有用。

总结一下 - 我建议您给它们命名,但命名完全由您决定:-)