ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript関数の定義・呼び出し・注意点

JavaScript関数の定義・呼び出し・注意点

零下一度
零下一度オリジナル
2017-04-17 14:46:331313ブラウズ

この記事ではJavaScriptの関数呼び出しの定義と注意事項を中心に紹介しますので、必要な方は

関数定義

関数文定義


function(a,b){
 return a+b; 
}

式定義


var add = function(a,b){return a+b};

/ /関数式を参照してください。名前を含めることができ、再帰するときに便利です。 var f = function fat(x){ if(x<=1) {return 1; }else { return x*faxt(x-1) }

として定義された関数の場合式の場合、関数の名前はオプションです。関数定義式に名前が含まれる場合、関数のローカル スコープには関数オブジェクトにバインドされた名前が含まれます。実際、関数の名前は関数内のローカル変数になります

関数の命名規則

。 1. like_this() の最初の文字は小文字で、複数の単語が含まれる場合、単語はアンダースコアで区切られます

2. likeThis() の最初の文字は、最初の単語以外は小文字になります。最初の文字には大学の文字を使用してください

3. 内部関数またはプライベート関数。通常は先頭にアンダースコアが付けられます

注: 関数宣言ステートメントは、外部スクリプトまたは外部関数の先頭に進められるため、外部スクリプトまたは外部関数の前に出現できます。コードによって呼び出される関数を式として定義する前に、変数に割り当てる必要があります。したがって、式モードで定義された関数は、関数が値を返す前に呼び出すことはできません。 return ステートメントは関数の値を呼び出し元に返します。

return ステートメントがない場合は、unknown を返します

  • ネストされた関数

  • ネストされた関数は、その関数のパラメーターと変数にアクセスできます

しかし、ネストされた関数はループ内に出現することはできません、条件判断、または try/cache/finally/with ステートメント内の

  • 関数呼び出し

  • メソッドとして

call() によるそして申請してください() メソッドの間接呼び出し

    を関数呼び出しとして
  • add(1,2)
  • 関数呼び出しに関する ECMAScript3 および非厳密な ECMAScript5 の規定に従って、呼び出しコンテキスト(この値) はグローバル オブジェクトです。ただし、厳密モードでは、呼び出しコンテキストは未定義です。

    //関数を定義し、関数を呼び出して、現在のスクリプトが strict モードで実行されているかどうかを判断します
  • var strict = (function(){return this;}());
  • Call asメソッド

  • var o = {
     m:1,
     n:2,
     add:function(){
      this.result = this.m+this.n;
      }
    }

    メソッド呼び出しと関数呼び出しの大きな違い。 ----calling context
o.add() add の呼び出しコンテキストは o、つまり: this

o.add() は o['add']() と同等ですメソッドチェーン: メソッドが実行するとき値を返す必要はありません。現時点では、変数や属性名ではなく、キーワードとして thisthis を直接返すのが最善です。 JavaScript 構文では、this に値を割り当てることはできません。変数とは異なり、キーワード this には制限がありません。外部関数の this にアクセスする場合、this を呼び出します。 save 変数

ネストされた関数が関数として呼び出された場合、その this の値は、それを呼び出したオブジェクトを指します。関数として呼び出された場合、これはグローバル オブジェクト (非厳密モード) または未定義 (厳密モード) のいずれかになります。 。呼び出しコンテキストや戻り値などの点で違いがあります。

add(1,2)

 根据ECMAScript3和非严格的ECMAScript5对函数调用的规定,调用上下文(this的值)是全局对象。然而在严格模式下,调用上下文则是undefined。

//定义一个函数且调用一个函数来确定当前脚本运行是否为严格模式
 var strict = (function(){return this;}()); 仮パラメータのないコンストラクター呼び出しでは括弧を省略できます。

var o = new Object();

コンストラクターの呼び出しは、新しい空のオブジェクトを作成します。このオブジェクトは、コンストラクターのプロトタイプ属性を継承し、新しく作成されたオブジェクトを初期化しようとし、このオブジェクトをコンテキストとして使用するため、コンストラクターはこのキーワードを使用できます。この新しく作成されたオブジェクトを参照します。

new o.m() 呼び出しのコンテキストは o ではありません。

コンストラクターは return を使用しません。コンストラクターが return ステートメントを使用して明示的にオブジェクトを返す場合、呼び出し側の式の値はこのオブジェクトになります。コンストラクターが値を返さない場合、またはプリミティブ値を返す場合、戻り値は無視され、新しいオブジェクトが戻り結果として使用されます。




間接呼び出し

call()

appy()

以上がJavaScript関数の定義・呼び出し・注意点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。