js では、参照型は 5 つの参照型、つまり Object、data、Array、re を含むデータ構造です。コード gExp、Function を入力してください。今回はFunctionのデータ構造についてお話します。
js では、関数は実際にはオブジェクトであり、各関数は Function 型のインスタンスです。他の参照型と同様に、参照型にはプロパティとメソッドがあります。
1. 関数を定義するにはいくつかの方法があります
1) 関数宣言構文の定義
function sum(num1,num2){ return num1+num2; }
2) 関数式
関数式の後にセミコロンがあることに注意してください
var sum=function(num1,num2){ return num1+num2; }
関数コンストラクターを使用します
コンストラクターを使用すると、任意の数のパラメーターを受け取ることができますが、最後のパラメーターは常に関数本体とみなされ、前のパラメーターはパラメーターを列挙します
var sum=new Function("num1","num2","return num1+num2")
もちろん、3番目のメソッドはフレンドリーではありませんそして推奨されません。
関数名は関数への単なるポインターであるため、関数名はオブジェクト ポインターを含む他の変数と何ら変わりません。つまり、関数には複数の名前がある可能性があります。
ここでの関数宣言と関数式の違いは何ですか?
パーサーがデータを実行環境にロードするとき、関数宣言と関数式は異なる方法で処理されます。パーサーは最初に関数宣言を読み取り、コードの前に関数宣言コードを呼び出し可能にします。これは通常、関数宣言のホイスティングと呼ばれるものです。関数式は異なります。実際に実行される前に、関数パーサーが関数式が配置されているコード ブロックを実行するまで待つ必要があります。次の 2 つの例を比較してください
console.log(sum(10,10)); function sum(n1,n2){ return n1+n2; } 以上代码会正常执行 再看! console.log(sum(10,10)); var sum=function(n1,n2){ return n1+n2; } 以上执行器就会报错!
2. 関数はオーバーロードされていません
同じ名前の 2 つの関数が宣言された場合、結果として、後の関数が前の関数を上書きします。
3. 関数
4. 関数
の属性とメソッド関数には、length とプロトタイプの 2 つの属性があります
length は、関数が受け取りを希望する名前付きパラメーターの数を示します。
function sun(a){ return a+100; } function sun(a){ return a+200; } var result=sum(2)//202
各関数には、apply と call という 2 つの非継承メソッドが含まれています
これら 2 つのメソッドの目的は、実際には、関数本体で this によって参照される値を設定することです。
まずは。 apply() メソッドは 2 つのパラメーターを受け取ります。1 つは関数が実行されるスコープで、もう 1 つはパラメーター配列です。2 番目のパラメーターは配列または引数のインスタンスです。
function a(name){ //todo } function b(name,age){ //todo } function c(){ //todo } a.length //1 b.length //2 c.length //0
呼び出しと適用を使用してスコープを拡張する最大の利点は、オブジェクトがどのメソッドにも結合されないことです
関連推奨事項:
JS 関数の例の詳細な説明JS 関数のデバウンスとスロットリングの詳細な分析_Basic知識js関数のパラメータの値渡しの説明以上がjs関数に関するナレッジポイントのまとめと共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。