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 outer;
(outer = function() {
    var inner;
    return (inner = function() {
        print('hello world');
    })(), inner;
})();

outer();

とは言っても、同僚からこのコードを見たら、丸めた新聞紙で殴るだろう。

于 2013-08-22T09:39:59.827 に答える
0

あなたのコアステートメントはこれです

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

これがよりエレガントになる方法がわかりません。

于 2013-08-22T09:33:06.863 に答える