JavaScript では、関数を
◆ 変数に割り当てる
◆ オブジェクトのプロパティとして割り当てる
◆ パラメータとして他の関数に渡す
◆ 関数の結果として返す
に割り当てる変数:
//声明一个函数,接受两个参数,返回其和 function add(x, y){ return x + y; } var a = 0; a = add;//将函数赋值给一个变量 var b = a(2, 3);//调用这个新的函数a print(b);
このコードは「5」を出力します。代入後、変数 a は関数 add を参照します。つまり、a の値は関数オブジェクト (実行可能コード ブロック) であるため、 (2, 3) このステートメントのように合計演算を実行します。
オブジェクトのプロパティへの割り当て:
var obj = { id : "obj1" } obj.func = add;//赋值为obj对象的属性 obj.func(2, 3);//返回5
実際、この例は前の例と本質的に同じです。最初の例の a 変数は実際にはグローバル オブジェクトです (クライアント環境にある場合は、それを意味します)。はウィンドウ オブジェクトのプロパティです)。 2 番目の例は obj オブジェクトです。グローバル オブジェクトを直接参照することはほとんどないため、個別に説明します。
パラメータとして渡されます:
//高级打印函数的第二个版本 function adPrint2(str, handler){ print(handler(str)); } /将字符串转换为大写形式,并返回 function up(str){ return str.toUpperCase(); } //将字符串转换为小写形式,并返回 function low(str){ return str.toLowerCase(); } adPrint2("Hello, world", up); adPrint2("Hello, world", low);
このスニペットを実行すると、結果が得られます:
HELLO, WORLD hello, world
関数 adPrint2 の 2 番目のパラメータは、実際にはこの処理関数をパラメータとして渡します。 adPrint2 を使用しても、この関数は引き続き呼び出すことができます。特に、いくつかのオブジェクトを処理したいが、どのような形式で処理するかがわからない場合には、「処理方法」を完全に変更して、抽象的な粒度としてラップすることができます。関数)。
関数の戻り値として:
最初に最も単純な例を見てみましょう:
function currying(){ return function(){ print("curring"); } }
関数curringは匿名関数を返します。この匿名関数は単にcurring()を呼び出すと次の結果を取得します。
function (){ print("curring"); }
カリー化によって返された匿名関数を呼び出したい場合は、次のようにする必要があります:
currying()();
最初のブラケット操作は、この時点での戻り値が関数であることを意味します。 2 番目の括弧演算子がこの戻り値を呼び出すと、次の結果が得られます:
currying
以上がJavaScriptの関数の使い方と戻り値の使用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。