2016-09-01 7 views
1

Ich versuche, ein einfaches Beispiel für die Vererbung von Prototypen in Javascript geben, aber es läuft nicht. Freundlich helfen!Simple Javascript Prototyp Beispiel

HTML

<script> 
var animal = {eats: 'true'}; 
animal.prototype.name = "Lion"; 
console.log(animal); 
</script> 
+0

Bitte definieren "nicht aktiv". – Teemu

+0

Kann ich nicht verstehen, was du sagst? – Deadpool

+0

Haha, was meinst du wenn du sagst "es läuft nicht"? Es läuft und einen Fehler auslöst, überprüfen Sie einfach die Konsole. "Prototyp" ist eine Eigenschaft nur von Funktionen ... – Teemu

Antwort

2

Ja, können Sie Eigenschaften eines Prototyps hinzufügen ... solange der Prototyp tatsächlich existiert. In Ihrem Fall müssen Sie zuerst den Prototyp initialisieren. Zum Beispiel:

var animal = {eats: 'true'}; 
animal.prototype={}; 
animal.prototype.name = "Lion"; 
console.log(animal); 

Aber ein schöner Weg, um einen Prototyp zu definieren ist:

var Animal=function(name){ 
    this.name=name; 
} 

// Add new members to the prototype: 
Animal.prototype.toString=function() 
{ 
    return "animal "+this.name; 
} 

// Instance objects: 
var a1=new Animal("panther"); 
console.log(a1.toString()); 
1

einfacher für Sie Art und Weise. Sie können die Nicht-Konstruktor-Methode verwenden, um Objekte mit vorhandenen Objekten zu erstellen, indem Sie die prototypische Vererbung in JavaScript verwenden. Der andere nutzt Funktionen.

Ihre Tierfrage wurde schon früher gestellt: Basic JavaScript Prototype and Inheritance Example for Animals, bitte folgen Sie anderen Javascript-ProtoyType-Posts hier im Stackoverflow, da dort zahlreiche und genügend Zeit für sie aufgewendet wurde. Nutze und sei ein Profi.

var animal = { name: 'Lion'}; 
 
var myanimal = Object.create(animal) 
 
myanimal.eats = "true"; 
 
console.log(myanimal.name);

+0

soll prototypische Vererbung verwenden. – Deadpool

+1

Das obige Beispiel zeigt, wie Sie vorhandene Objekte prototypisch erben können, ohne Funktionen zu verwenden, nur um ein einfaches Beispiel zu verstehen. Langer Weg. Sie können auch Funktionen und Klassen in ES6 verwenden – ajaykumar

+0

@Peterson Ihr Tier Link hinzugefügt – ajaykumar

2
var Animal = function() { 
    this.eats = 'true'; 
}; 

Animal.prototype.name = 'Lion'; 

var a = new Animal; 

console.log(a.name);