3

私はいつも、読んでいる内容の実際の、基本的な、実用的な例を見ないと、新しい概念を理解するのに苦労します。私は stackoverflow に関する他の説明が好きですが、JavaScript のメソッドと関数の違いを示す非常に基本的な例を見て、すぐに実行して詳細を確認したいと思います。

4

4 に答える 4

5

Aは、オブジェクトの であるmethod単なる関数です。propertyこれは、JavaScript の別のタイプのオブジェクトではなく、オブジェクトのとして定義されたにmethod付けられたわかりやすい名前です。functionproperty

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();
}
于 2012-09-23T03:54:12.167 に答える
1

これは関数と関数呼び出しです:

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();
于 2012-09-23T03:54:31.937 に答える
0

例:

関数:

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()
于 2012-09-23T03:58:28.677 に答える
0

関数は、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();

オブジェクト指向プログラミングではメソッドを使用します。

参照:

于 2012-09-23T04:26:01.503 に答える