同时分配和执行Javascript功能

时间:2013-08-22 09:27:47

标签: javascript function

是否有一种更优雅的方式来写这样的东西,其中myFunction与函数func一致,但func也在赋值期间执行?

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

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

...

myFunction();

3 个答案:

答案 0 :(得分:3)

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

  return func;
})();

您可以为匿名功能命名。但是,这个名称只能在函数本身内部访问。

答案 1 :(得分:0)

您的核心陈述是

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

我不知道这会更优雅。

答案 2 :(得分:0)

赋值表达式返回指定的值,但您必须单独声明该变量,因此您仍然必须重复该标识符:

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

outer();

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