ホームページ >ウェブフロントエンド >jsチュートリアル >関数の呼び出し方法とそのポイントを詳しく説明
1. 関数呼び出し方法
1. 関数としては、直接的でわかりやすい方法 (つまり、関数呼び出しモード)。
2. メソッドがオブジェクトに接続され、オブジェクトによって呼び出される形式です。
3. コンストラクターとして、構築プロセス中に新しいオブジェクトが作成されます。
4. 関数の apply メソッドまたは call メソッド経由。
この記事では主に、関数呼び出しのさまざまな方法とその方向性について簡単に説明します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
2. 関数パラメータ
1. パラメータを渡す
(1) 関数定義変数よりも多くの変数を渡します。
(2) 関数で変数を定義するときに、追加の変数が渡され、追加の変数は未定義になります
2. 関数が呼び出されるとき、2 つのパラメーターの引数と this が非表示で渡されます (つまり、引数とこれは静かに関数) に渡され、関数のスコープ内で動作します)。
(1) 引数: 関数の呼び出し時に関数に渡される変数のセット (argument.length 属性を持つ)
例: argument[0] は関数に渡される最初のパラメータを指します
(2) これ1 つのオブジェクトに関連付けられています。
呼び出し方法によって、これもポイントが異なります。したがって、これが呼び出しコンテキストになります。
3. this を指す
1. 関数呼び出しモード (this->window)
この関数はどのオブジェクトの属性にも属しません。
function fn1(){ //some code } fn1(); 或着: var fn2=function(){ //some code } fn2(); 使用这种方式调用函数,函数的上下文是全局上下文(global context即window)。this->window。
2.メソッド呼び出しモード(this->メソッドが属するオブジェクト)
この関数はオブジェクトのプロパティであり、この関数が呼び出されると、この関数はこのオブジェクトのメソッドとみなされます。
var obj={ //some code; }; obj.getname=function(){ //some name } obj.getname(); 函数的上下文是这个对象(例子中的 obj)。this->obj
3. コンストラクター呼び出しモード (this->新しいオブジェクトの作成)
関数がコンストラクターとして呼び出される場合、次の特性があります:
新しいオブジェクトが作成されます。
この新しいオブジェクトが渡されます。これは、この新しいオブジェクトがコンストラクター関数のコンテキストであることを意味します
明示的な return ステートメントがない場合、この新しいオブジェクトは暗黙的に返されます (つまり、静かに返されます)。このコンストラクターの値。
function Fn(){ this.a=function(){ return this; } } var n=new Fn(); console.log(n.a());//Fn{a:f} console.log(n);//fn{a:f} //此例中,构造了一个构造函数Fn((),利用new关键字调用时一个空的对象被创建出来,并传递到函数中作为this存在。this-Fn(新的) //这个构造器同时创建了a属性,并将此属性作为一个方法赋予给它创建出新对象的实例。
4.apply() は call() メソッドを取得します (this-> は指定した任意のオブジェクトにすることができます)
(1) apply()、2 つのパラメーター。最初のパラメータ: 関数コンテキストとして使用されるオブジェクト。 2 番目のパラメータ: パラメータ配列。
(2) call()、2 つのパラメーター。最初のパラメータ: 関数コンテキストとして使用されるオブジェクト。 2 番目のパラメータ: 引数リスト。
call() と apply() は主に関数のコールバックに使用されます。
function circle(list,calback){ for(var i=0;i<list.length;i++){ calback.call(list[i],i); } } var list=['a','b','c']; circle(list,function(index){ console.log(index);//0,1,2(即传进来的i值) console.log(this);//a,b,c(call的第一个参数) }); //this->call()传递进来的第一个参数。
関連する推奨事項:
複数のステートメントをバッチで実行する Mysqli メソッドと、複数のステートメントを実行する 1 つの関数呼び出し
WeChat アプレット ページでのデータ操作と関数呼び出しの詳細な説明
方法jsの親を解決する 関数がサブ関数を呼び出すと未定義関数が発生します
以上が関数の呼び出し方法とそのポイントを詳しく説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。