2017-08-15 21 views
0

まず、ファンクション定義(または式)を使用してファンクションを作成する方法と 'ファンクション'コンストラクタを使用する方法の違いについて質問しません。 これらの3つが私が既に知っている特定の違いを持つ関数を作成するのに使用されます。ファンクションと 'ファンクション'コンストラクタ

私が言っていることは、javascriptで知られているようにファーストクラスのオブジェクトであり、どのファンクションも 'ファンクション'コンストラクタのインスタンスであるということです。

私の質問は、特に機能にとって必須のコンストラクタ機能を持つjavascriptのポイントは何ですか?

哲学的に言えば、関数であるコンストラクタが関数のコンストラクタなので、コンストラクタ関数 'Function'のコンストラクタは何ですか?

これは奇妙な質問かもしれませんが、本当に混乱しています! MDNから

+1

'Function.constructor === Function' – ASDFGerte

+0

Re" * ...コンストラクタ関数 'Function' *のコンストラクタは何である必要はありませんが、それは存在する組み込みオブジェクトです。グローバル実行コンテキストが作成されます。 – RobG

+0

@RobGここであなたのFacebookアカウントをリンクできますか? –

答えて

0

Functionコンストラクタは、新しい関数オブジェクトを作成します。 JavaScriptでは、すべての関数は実際にはFunctionオブジェクトです。

重要な部分は、すべての機能が実際に機能オブジェクトであることです。

関数オブジェクトは、evalを使用せずに文字列を関数として解析するのに便利です。コンパイル時にパラメータと関数本体が分からない関数を動的に作成するのに便利です。

+0

* "関数オブジェクトは、evalを使わずに文字列を関数として解析するのに便利です。" * - 'Function()'関数がそれに便利ですか?あなたはすでに "すべての関数は実際に関数オブジェクト"と言っていますが、すべての関数が文字列を解析するわけではありません。 – nnnnnn

+0

Function()コンストラクタは便利です。関数をファイルやデータベースからロードするには、 'var f = new Function( 'x'、" return x + 2 ")'を実行し、関数f(2)を呼び出します。 – Ivan

+0

はい、私は 'Function()'が何をしているのか知っています。私がイタリック体で引用した文章が間違っていて、それ以前の文章と違うと言っています。 – nnnnnn

関連する問題