ホームページ >ウェブフロントエンド >jsチュートリアル >js関数に必要な知識
js では、参照型は 5 つの参照型 (Object、data、Array、re请输入代码
gExp、Function) を含むデータ構造であることを知っておく必要があります。今回はFunctionのデータ構造についてお話します。
js では、関数は実際にはオブジェクトであり、各関数は Function 型のインスタンスです。他の参照型と同様に、参照型にはプロパティとメソッドがあります。
関数宣言構文の定義
function sum(num1,num2){ return num1+num2; }
関数式の後にセミコロンがあることに注意してください。
var sum=function(num1,num2){ return num1+num2; }
使用构造函数可以接收任意数量的参数,但最后一个参数始终被看成是函数体,而前面的参数则枚举出了参数
var sum=new Function("num1","num2","return num1+num2")
ここでの関数宣言と関数式の違いは何ですか? パーサーがデータを実行環境にロードするとき、関数宣言と関数式は異なる方法で処理されます。パーサーは最初に関数宣言を読み取り、コードの前に関数宣言コードを呼び出し可能にします。これは通常、関数宣言のホイスティングと呼ばれるものです。関数式は異なります。実際に実行される前に、関数パーサーが関数式が配置されているコード ブロックを実行するまで待つ必要があります。以下の 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 つの関数が宣言された場合、結果として、後の関数が前の関数を上書きします。
function sun(a){ return a+100; } function sun(a){ return a+200; } var result=sum(2)//2023. 関数の内部プロパティ
function a(name){ //todo } function b(name,age){ //todo } function c(){ //todo } a.length //1 b.length //2 c.length //0prototype 属性は参照型にとって非常に重要であり、具体的に説明するので、ここでは詳しく説明しません。
function sum(num1,num2){ return num1+num2; } function test1(a,b){ return sum.apply(this,arguments); } function test2(c,d){ return sum.apply(this.[c,d]); } console.log(test1(1,1)) //2 console.log(test2(1,1)) //2call メソッドと apply メソッド。違いは、call メソッドの 2 番目のパラメーターを 1 つずつリストする必要があることです。
call と apply を使用してスコープを拡張する最大の利点は、オブジェクトがどのメソッドにも結合されていないことです。
関連する推奨事項:
js関数の呼び出しと、暗黙的なパラメータの引数とこれに関連する問題
以上がjs関数に必要な知識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。