Suche…
Einführung
In der herkömmlichen JS gibt es keine Klasse, stattdessen haben wir Prototypen. Wie die Klasse erbt der Prototyp die Eigenschaften einschließlich der in der Klasse deklarierten Methoden und Variablen. Wir können die neue Instanz des Objekts jederzeit erstellen, indem Sie Object.create (PrototypeName) verwenden. (wir können auch den Wert für den Konstruktor angeben)
Prototyp erstellen und initialisieren
var Human = function() {
this.canWalk = true;
this.canSpeak = true; //
};
Person.prototype.greet = function() {
if (this.canSpeak) { // checks whether this prototype has instance of speak
this.name = "Steve"
console.log('Hi, I am ' + this.name);
} else{
console.log('Sorry i can not speak');
}
};
Der Prototyp kann so instanziiert werden
obj = Object.create(Person.prototype);
ob.greet();
Wir können Werte für den Konstruktor übergeben und basierend auf der Anforderung den Booleschen Wert auf "True" und "False" setzen.
Ausführliche Erklärung
var Human = function() {
this.canSpeak = true;
};
// Basic greet function which will greet based on the canSpeak flag
Human.prototype.greet = function() {
if (this.canSpeak) {
console.log('Hi, I am ' + this.name);
}
};
var Student = function(name, title) {
Human.call(this); // Instantiating the Human object and getting the memebers of the class
this.name = name; // inherting the name from the human class
this.title = title; // getting the title from the called function
};
Student.prototype = Object.create(Human.prototype);
Student.prototype.constructor = Student;
Student.prototype.greet = function() {
if (this.canSpeak) {
console.log('Hi, I am ' + this.name + ', the ' + this.title);
}
};
var Customer = function(name) {
Human.call(this); // inherting from the base class
this.name = name;
};
Customer.prototype = Object.create(Human.prototype); // creating the object
Customer.prototype.constructor = Customer;
var bill = new Student('Billy', 'Teacher');
var carter = new Customer('Carter');
var andy = new Student('Andy', 'Bill');
var virat = new Customer('Virat');
bill.greet();
// Hi, I am Bob, the Teacher
carter.greet();
// Hi, I am Carter
andy.greet();
// Hi, I am Andy, the Bill
virat.greet();
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow