1

これら 2 つの JavaScript コード スニペットは同等ですか?

jQuery(document).ready(function() {
    (function(){
        return 'something';
    })();
});

この

jQuery(document).ready(function() {
  return (function() {
    return "something";
  })();
});

私はコーヒースクリプトを試していました。上記の最初のコードを coffescript に変換し、それを JS に戻すと、2 番目のスニペットが得られます。だから、それらがまったく同じかどうか知りたかったのです。クロージャーに関連する関数内から関数を返すことはありませんか?

4

2 に答える 2

2

彼らは同じでしょう、ええ。2 番目のものはスタック メモリを 1 ユニット多く使用することを除いて。

于 2012-09-26T21:09:54.660 に答える
1

.readyメソッドがそのコールバックの戻り値を使用するかどうかによって異なります。もしそうなら、例は異なります。戻り値が無視される場合は、同じです。

考えてみると、すぐに呼び出された関数式を「簡略化」できます。これを行うと、最初の例は次のようになります

jQuery(document).ready(function() {
    'something';
});

そして2番目に

jQuery(document).ready(function() {
    return 'something';
});
于 2012-09-26T21:27:07.317 に答える