私はいつも、読んでいる内容の実際の、基本的な、実用的な例を見ないと、新しい概念を理解するのに苦労します。私は stackoverflow に関する他の説明が好きですが、JavaScript のメソッドと関数の違いを示す非常に基本的な例を見て、すぐに実行して詳細を確認したいと思います。
4 に答える
Aは、オブジェクトの であるmethod
単なる関数です。property
これは、JavaScript の別のタイプのオブジェクトではなく、オブジェクトのとして定義されたにmethod
付けられたわかりやすい名前です。function
property
var myObj = {};
myObj.go = function() {alert("hi");}
myObj.go();
この例では、オブジェクトgo
のメソッドです。myObj
上記の例のようにメソッドが呼び出されるとmyObj.go()
、ポインターの値はthis
、メソッドの呼び出しに関与したオブジェクト (この場合はmyObj
) に設定されます。
グローバル関数は暗黙的にwindow
オブジェクトのプロパティでもあるため、グローバル関数はオブジェクトのメソッドでもあると言えますが、それらを呼び出すために指定するwindow
必要はありません。window
この関数のようなローカル関数inner()
は単なる関数であり、特定のオブジェクトに関連付けられていないため、メソッドではありません。
function main() {
function inner() {
alert("hi");
}
inner();
}
これは関数と関数呼び出しです:
function myFunction(){
alert("This is a function!");
}
myFunction();
一方、これはオブジェクトのメンバー関数であるため、メソッド呼び出しです。
message.toUpperCase();
クラス/メソッドと呼び出しを作成する完全なコードは次のとおりです。
function Circle(x,y,r) {
this.xcoord = x;
this.ycoord = y;
this.radius = r;
}
Circle.prototype.retArea = function () {
return ( Math.PI * this.radius * this.radius );
};
var aCircle = new Circle(1,2,3);
var a = aCircle.retArea();
例:
関数:
var f1 = function fBase() { ... }
function f2() { ... }
var f3 = function() { ... }
f1()
f2()
f3()
方法:
var c = function oBase() {
this.method1 = function() { ... };
}
c.prototype.method2 = function() { ... }
var o = new c()
o.method1()
o.method2()
メソッド json:
var o = { method1: function() { ... } }
o.method2 = function() { ... }
o.method1()
o.method2()
関数は、call ("()") 演算子を使用して実行できるコードを定義するために使用できる型であり、呼び出し元にデータを返す場合があります。
例えば
定義
function sayHello(){
return "Hello";
}
使用する
var result = sayHello();
これで、結果は「Hello」に続きます。
メソッドは、オブジェクト内で定義され、プロパティを通じてアクセスできる関数です。たとえば、slice
関数はすべての文字列インスタンスに対して定義されています
例えば
定義
var obj = {
sayHello : function(){
return "Hello";
}
};
オブジェクト定義の外でメソッドを定義することもできます
var obj = {};
obj.sayHello = function(){
return "Hello";
};
使用する
var result = obj.sayHello();
オブジェクト指向プログラミングではメソッドを使用します。
参照: