2016-09-09 4 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. 

Ich bin mir nicht sicher, wie man eine Methode zu einer vorhandenen Klasse hinzufügt. Ich bin neu in JavaScript. Ich verstehe, wie neue Eigenschaften hinzugefügt werden, aber keine neuen Funktionen.Wie füge ich eine Methode zu einem vorhandenen Objekt hinzu?

Antwort

0

Fügen Sie die Methode der Prototypkette Person hinzu.

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

Eine Möglichkeit, dies zu tun, ist die Verwendung von Prototyping Sie eine Methode zu einem Objekt hinzufügen können, obwohl tun: myObject.prototype.myMethod = function(){ ... }

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

Eine weitere Möglichkeit, direkt auf die Schaffung von Person und fügte hinzu, werden nur zur Kenntnis das Verfahren wird für jede Instanz in diesem Fall dupliziert:

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

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

Mit der zweiten Option verwenden, wird eine neue Funktion für jede Instanz erstellen. Was nicht empfohlen wird. –

+1

@ Mohamed-Ted Ich bin mir dessen bewusst, war im Begriff, es als Bearbeitung hinzuzufügen. Obwohl es in den meisten Fällen keinen signifikanten Unterschied gibt, wenn nicht viele tausend Instanzen erstellt werden. –

0

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

Sie können der Person-Klasse eine Prototyp-Funktion hinzufügen und dann hat jede Person Zugriff auf die Funktion.

+0

Dies ist buchstäblich die gleiche Antwort alle anderen gepostet. –

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()

Sie können Methoden definieren prototype

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

Verwandte Themen