まず第一に、概念があります。この言語は関数をサポートする言語ではありません。これを「関数型言語」と呼びます。関数型言語の関数には、呼び出されるだけでなく、他のプロパティもあります。ポイントは以下の3つです:
1. 関数はオペランドです
2. 関数内の操作は関数の外に副作用を持ちません
1.
通常の関数が呼び出される場合、関数は演算子であり、渡されるパラメータはオペランドであると抽象的に理解できます。ただし、JavaScript の関数が別の関数のパラメータとして使用される場合。関数では、参照によって渡され、この「受信パラメータ」はオペランドとして理解できます。結論としては、関数 (「入力パラメーター」として) にはオペランドの意味があり、「関数パラメーター」は通常のパラメーターと何ら変わりません。
2. 関数内のデータの保存
命令型言語では、関数内のプライベート変数(ローカル変数)を保存することはできません。プログラム実行の観点から見ると、ローカル変数はスタック上に確保され、関数の実行終了後に占有されていたスタックは解放されます。したがって、関数内のデータは保存できません。 JavaScript 関数では、関数内のプライベート変数を変更でき、再度関数に「入る」と、変更された状態が継続されます。次の例は、この機能を示しています。
値 = v;
}
関数 get_value(){
戻り値;
}
get = get_value;
}
MyFunc();
console.log(get()); //100
set(300);
console.log(get()); //300
obj1.showValue(); //100;
さらに、JavaScript では、関数内でオブジェクトと配列のメンバーを変更することもできます。これらのメンバーは、オブジェクト システムの外部の他の関数ではなく、オブジェクト メソッドによって変更する必要があります。
つまり: JavaScript のこの機能は、開発者のプログラミング習慣によってのみ保証されます。