2016-09-09 3 views
-1
var Person = function(name, age) { 
    this.name = name; 
    this.age = age; 
}; 



//Now create three instances of Person with data you make up 

var p1 = new Person('Aaron', 32); 
var p2 = new Person('Casey', 30); 
var p3 = new Person('Greg',31); 



//Now add a sayName method on your Person class that will alert the name of whatever Person instance called it. 

既存のクラスにメソッドを追加する方法がわかりません。私はJavaScriptが初めてです。私は新しいプロパティを追加する方法を理解しますが、新しい機能は追加しません。既存のオブジェクトにメソッドを追加するにはどうすればよいですか?

答えて

0

プロトタイプチェーンPersonにメソッドを追加します。 myObject.prototype.myMethod = function(){ ... }

Person.prototype.sayName = function(){ 
    console.log(this.name); 
} 
もう一つの方法は、直接 Personの作成時に、それを追加することができ

、ちょうどノートを:やってもこれを行うには

Person.prototype.sysName = function() { 
    return console.log(this.name); 
}; 
0

一つの方法は、あなたがオブジェクトにメソッドを追加することができますプロトタイピングを使用することですこの方法は、この場合、各インスタンスに対して複製される:

var Person = function(name, age) { 
    this.name = name; 
    this.age = age; 

    this.sayName = function() { 
     console.log(this.name); 
    } 
}; 
+0

を使用してのメソッドを定義することができ、すべてのインスタンスのための新しい関数を作成します。これはお勧めしません。 –

+1

@ Mohamed-Ted私はそれを知っていて、それを編集として追加しようとしていました。何千ものインスタンスが作成されていない限り、大部分のケースでは大きな違いはありませんが。 –

0

Person.prototype.sayName = function() { console.log(this.name) }

Personクラスにプロトタイプ関数を追加してから、各自がその関数にアクセスできます。

+0

これは文字通り他の人が投稿したのと同じ回答です。 –

0

var Person = function(name, age) { 
 
    this.name = name; 
 
    this.age = age; 
 
}; 
 

 
Person.prototype.sayName = function() { 
 
alert(this.name) 
 
} 
 

 
var p1 = new Person('Aaron', 32); 
 

 
p1.sayName()

2番目のオプションを使用してprototype

Person.prototype.myMethod = function() { ... }

関連する問題