ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript関数objects_jsオブジェクト指向に関するわかりにくい分析

JavaScript関数objects_jsオブジェクト指向に関するわかりにくい分析

WBOY
WBOYオリジナル
2016-05-16 18:00:19941ブラウズ

js の関数オブジェクトは魅力的ですが、柔軟性が高すぎるため、混乱を招くことがよくあります。

ほとんどの人は、

コードをコピー コードは次のとおりです:
function test () {}

書籍全体「JSVAScript」 Language Essence" 次のように記述します:

コードをコピー コードは次のとおりです:
var test = function ( ) {}

関数はすぐに実行して割り当てることができます:

コードをコピー コードは次のとおりです:
var test = function () {} () // test === 未定義
var test2 = function () {return 'sugarcake'}() // test2 === 'sugarcake'

ただし、関数省略形を直接実行することはできません。次のコードはエラーを報告します:

Copyコード コードは次のとおりです:
function test() {}() // SyntaxError: 構文エラー

でラップされた場合"()" 演算子、これは正常です:

コードをコピーします コードは次のとおりです:
( function test () {})();

実際、関数名 test には意味がないため、削除しても匿名関数になり、関数本体内のコードを自動的に実行できます。一般的に使用される匿名関数の記述方法:

コードをコピー コードは次のとおりです:
(function () {} )();

匿名関数は次のように書くこともできます。これはより「美しい」かもしれません:

コードをコピー コードは次のとおりです。
(function () {}());

これを見てください、初めての方は Brother JS がおかしくなっていますか?私のプロジェクトで C 言語に取り組んでいた人が、匿名関数を見た直後に固まってしまったのを見たことがあります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。