1

有没有更优雅的方式来写这样的东西,其中 myFunction 被分配给函数 func 但 func 也在分配期间执行?

var myFunction = (function(){
  var func = function(){
    console.log('hello world');
  };

  func();
  return func;
})();

...

myFunction();
4

3 回答 3

3
var myFunction = (function func(){
  console.log('hello world');

  return func;
})();

您可以命名您的匿名函数。不过,这个名称只能在函数本身内部访问。

于 2013-08-22T09:37:22.800 回答
0

你的核心陈述是这个

var <name> = (<functionExpression>)();

我不明白这怎么能更优雅。

于 2013-08-22T09:33:06.863 回答
0

赋值表达式返回赋值,但你必须单独声明变量,所以你仍然需要重复标识符:

var outer;
(outer = function() {
    var inner;
    return (inner = function() {
        print('hello world');
    })(), inner;
})();

outer();

也就是说,如果我从同事那里看到这段代码,我会用卷起的报纸打他。

于 2013-08-22T09:39:59.827 回答