JavaScriptにおける名前関数の多様な呼び出し方法をまとめました.

2380 ワード

前のページでは匿名関数の様々な呼び出し方法について言及しています.ここでは、名前関数の様々な呼び出し方法を参照してください.
1、() 
普段最もよく使われているのは()演算子で、関数を呼び出したり実行したりします.
 
  
// fun1
function fun1() {
    alert(' ');
}
fun1();
 
// fun2
function fun2(param) {
    alert(param);
}
fun2(' ');
ECMAScript 3にFunctionにcallとapplyを入れたら、次の二つがあります.
2、コール
 
  
// fun1
function fun1() {
    alert(' ');
}
fun1.call(null);
 
// fun2
function fun2(param) {
    alert(param);
}
fun2.call(null,' ')
3、アプリ
 
  
// fun1
function fun1() {
    alert(' ');
}
fun1.apply(null);
 
// fun2
function fun2(param) {
    alert(param);
}
fun2.apply(null,[' '])
callでは、appyは単に関数を呼び出す/実行するために使用することができますが、それらは関数実行のコンテキストを変更するために使用されることが多いです.
4、new(このような方法はおすすめしませんよ)
 
  
// fun1
function fun1() {
    alert(' ');
}
new fun1();
 
// fun2
function fun2(param) {
    alert(param);
}
new fun2(' ')
newの本質は1つのクラスのインスタンスを作成/構築するために用いられ、ここで定義されたfun 1は、fun 2は明らかに1つのクラスではない.しかし、二つの関数は確実に実行されました.これはnewの副作用です.
上記の呼び出し方式から見て4つの方式の実行結果に違いはない.しかし、関数に戻り値があると、newで呼び出したときにがっかりすることがあります.
 
  
// fun
function fun() {
    alert(' ');
    return "jack";
}
var c = new fun();
alert(c);//[object Object], "jack"?
こうなりました
 
  
// fun
function fun() {
    alert(' ');
    return {name:'jack'};
}
var c = new fun();
alert(c.name); //jack,
まとめ:関数をnewで呼び出す場合.戻り値がある場合、戻り値がJavaScriptの内蔵タイプ(ベースタイプ)の文字列、数字(Number)、ブール(Boolean)などの場合、この値には戻りません.戻り値がオブジェクト、関数、配列などのオブジェクトタイプの場合、直接にそのオブジェクト、関数、配列に戻ります.
戻り値が内蔵タイプ(基本タイプ)の場合、new fun()は何に戻りますか?次の記事では、new方式の呼び出しの詳細について説明します.