JavaScript 関数は他の言語とは異なり、各関数はオブジェクトとして保持され、実行されます。関数オブジェクトのプロパティを使用すると、関数を変数に割り当てたり、関数をパラメーターとして渡すことが簡単にできます。続行する前に、関数を使用する構文を見てみましょう: 以下は引用部分です: function func1(…){…} var func2=function(…){… }; var func3=function func4(…){…}; コードをコピーします。 > コードは次のとおりです: </div> <div class="codebody" id="code32630">// 1、メソッド呼び出しモード <br>//関数はオブジェクトとして保存されます のプロパティの場合、それをオブジェクトのメソッドと呼び、これはオブジェクトにバインドされます <br>var myObject={ <br>name : "myObject" , <br>value : 0 , <br>increment : function(num){ <br>this.value = typeof(num) === 'number' ? num : 0; <br>return this; , <br>toString : function (){ <br>return '[オブジェクト:' this.name ' {value:' this.value '}]' <br>} <br>} <br>alert(myObject.increment(10).increment( 20). toString()); // [Object:myObject {value:30}] <br><br><br>// 2、関数呼び出しモード <br>// 関数が関数でない場合オブジェクトを呼び出し、関数として呼び出すと、グローバル オブジェクトにバインドされます。これは言語設計の間違いです。言語設計が正しい場合、内部関数が呼び出されるとき、これは外部関数 <br>var myObject={ <br>name : "myObject" , <br>value : 0 , の this 変数にバインドされているはずです。 <br>increment : function(num){ <br>this.value = typeof(num) === 'number' : 0; <br>return this; , <br>toString : function( ){ <br>return '[オブジェクト:' this.name ' {value:' this.value '}]' <br>}, <br>getInfo: function(){ <br>var self=this; 🎜>return ( function(){ <br>//return this.toString(); // 内部匿名関数の this はグローバル オブジェクト ウィンドウを指し、出力 [object Window] <br>return self.toString(); // 変数 selft を定義し、それに値 this を代入すると、内部関数はこの変数を通じてオブジェクトを指す this にアクセスします。 <br>} <br>} <br>alert(myObject.increment) (10).increment( 20).toString()); // [Object:myObject {value:30}] <br><br><br>// 3. コンストラクター呼び出しモード <br>// JavaScript がベースプロトタイプ継承言語では、オブジェクトが他のオブジェクトからプロパティを直接継承できることを意味し、言語はクラスレスです。 <br>// new を先頭に付けて関数が呼び出された場合、関数に接続されたプロトタイプ メンバーを非表示にする新しいオブジェクトが作成され、これがコンストラクターのインスタンスにバインドされます。 <br>関数 MyObject(name){ <br>this.name = name || 'MyObject'; <br>this.increment = function(num){ <br>this.value = typeof(num) === 'number' : 0; <br>this.toString = function(){ <br>return '[Object:' this.name ' {value:' this .value '}]'; <br>} <br>this.target = this; <br><br>MyObject.prototype.getInfo = function(){ <br>return this.toString(); <br>} <br><br>// MyObject.prototype オブジェクトを同時に作成します。myObject は、MyObject.prototype のすべてのプロパティを継承します。これは、MyObject のインスタンスにバインドされます。 = new MyObject (); <br>myObject.increment(10); <br><br>var otherObject = new MyObject(); 20); <br>alert(otherObject.value); //20 <br><br>alert(myObject.target===myObject); // ture <br>alert(myObject.target.getInfo()); // [ Object:MyObject {value:10}] <br><br><br>// 4、呼び出しモードを適用します <br>// JavaScript は関数型オブジェクト指向プログラミング言語であるため、関数にはメソッドを含めることができます。 関数の apply メソッドは、オブジェクトがこのメソッドを持っているかのようになり、this はオブジェクトを指します。 <br>// apply は 2 つのパラメータを受け取ります。1 つ目はバインドされるオブジェクト (this が指すオブジェクト)、2 つ目はパラメータ配列です。<br>function MyObject(name){ <br>this.name = 名前 || 'MyObject'; <br>this.increment = function(num){ <br>this.value = typeof(num) === 数値 : 0 ; <br>}; <br>this.toString=function(){ <br>return '[オブジェクト:' this.name ' {value:' this.value '}]' <br>} . target=this; <br>} <br>function getInfo(){ <br>return this.toString(); <br>var myObj = new MyObject(); ( myObj)); //[Object:MyObject {value:0}]、これは myObj <br>alert(getInfo.apply(window)) を指します、//[object Window]、これはウィンドウ <br><br>// for および while <br>function func(a,b){ <br>alert(a); // 1 <br>alert(b); // 2 <br><br>; (var i =0;i<arguments.length>alert(arguments[i]) // 1, 2, 1, 2, 3 <br>} <br><br>var i= 0; <br>while(i<arguments.length>alert(arguments[i]) // 1, 2, 1, 2, 3 <br>i=i 1; >} <br>func(1,2,3); <br><br>var i=0 <br>for (i=0;idocument.write("番号は " i "<br/>") <br>} <br><br>