この記事では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 ステートメント内の
add(1,2)
var strict = (function(){return this;}());
Call asメソッド
var o = { m:1, n:2, add:function(){ this.result = this.m+this.n; } }
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 ステートメントを使用して明示的にオブジェクトを返す場合、呼び出し側の式の値はこのオブジェクトになります。コンストラクターが値を返さない場合、またはプリミティブ値を返す場合、戻り値は無視され、新しいオブジェクトが戻り結果として使用されます。
間接呼び出し
appy()
以上がJavaScript関数の定義・呼び出し・注意点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。