ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript における Function と Function の簡単な区別

JavaScript における Function と Function の簡単な区別

高洛峰
高洛峰オリジナル
2016-11-25 11:17:271231ブラウズ

Js コード
var a = new Function("document.write(a)");

var b = function(){document.write(b);}

function c(){
document.write(c) ; 関数本体が与えられた関数。
最初の方法では、いくつかの情報を検索した後、要約を作成します。

Function は Javascript の Unction (大文字と小文字に注意) であり、そこから派生したものです (関数はもちろん参照型です)。個人的な推測は、2 番目のタイプの匿名関数参照に似ています。
関数インスタンスの構築方法:
varinstanceName = new Function([arg1 [, arg2 [, ...]] ,] body);
最初のいくつかの項目はパラメータで、最後の項目は関数本体です。 Jsコード
var myAdd = new Function("x", "y", "return x + y");
var sum = myAdd(17, 34);

実行後のsumの値は51です。


Function() コンストラクターを使用すると、関数ステートメントのプリコンパイルされた関数本体に制限されることなく、関数を動的に作成してコンパイルできます。この副作用として、関数が呼び出されるたびに、Function() コンストラクターがその関数をコンパイルする必要があることです。したがって、ループ本体や頻繁に使用される関数内でこのコンストラクターを頻繁に呼び出すべきではありません。

匿名関数は Function() コンストラクターと使用方法が似ていますが、違いは、匿名関数は使用時に 1 回だけ解析されるのに対し、文字列として Function() コンストラクターに渡される JavaScript コードはコンストラクターが解析されるたびに解析されることです。呼び出されると、一度解析されてコンパイルされます。
もう 1 つ注目すべき点は、変数のスコープ、Function() コンストラクター変数のスコープがグローバルであることです。
例:
Js コード

var y="global";

function constructionFunction()

{

var y="local";

var fun = new Function("alert(y);");//ローカルスコープをキャプチャします。

楽しい();
構築関数();

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。