代码之家  ›  专栏  ›  技术社区  ›  vol7ron

如何在函数调用期间实现可选括号?(函数重载)

  •  0
  • vol7ron  · 技术社区  · 14 年前

    我想这是不可能的,但我想 f f() 做同样的事。

       var f = function(str){ console.log(str||'foo'); }();
    
       f;                      // wanted output: 'foo'
       f();                    // wanted output: 'foo'
       f('bar');               // wanted output: 'bar'
    

    因为 不再是函数定义,似乎不可能这样做

    3 回复  |  直到 14 年前
        1
  •  2
  •   Guffa    14 年前

    不,那是不可能的。括号是确定函数是否应该被调用所必需的。

    表达式的值 f() 是调用函数的结果,而 f f.tostring() 如果您显示它)。

        2
  •  1
  •   Adam Crossland    14 年前

    不可能。括号是javascript如何知道您希望执行method对象的。

        3
  •  0
  •   Teja Kantamneni    14 年前

    拆下 () 从你的def。

    var f = function(str){ console.log(str||'foo'); };
    

    除了你的第一个病例,所有的都可以。您需要指定 ()