javascript 此代码段显示了如何在纯JavaScript中实现面向对象的继承,以便可以继承正确的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 此代码段显示了如何在纯JavaScript中实现面向对象的继承,以便可以继承正确的函数相关的知识,希望对你有一定的参考价值。

// Definiert den Person Konstruktor
function Person(firstName) {
  this.firstName = firstName;
}

// Fügt Methoden zum Person.prototype hinzu
Person.prototype.walk = function(){
  console.log("I am walking!");
};
Person.prototype.sayHello = function(){
  console.log("Hello, I'm " + this.firstName);
};

// Definiert den Student Konstruktor
function Student(firstName, subject) {
  // Call the parent constructor, making sure (using Function#call)
  // that "this" is set correctly during the call
  Person.call(this, firstName);

  // Initialize our Student-specific properties
  this.subject = subject;
};

// Erstellt ein Student.prototype Objekt das von Person.prototype erbt.
// Hinweis: Ein häufiger Fehler ist der Einsatz von "new Person()" beim erstellen vomeines
// Student.prototype. Das ist falsch aus einigen Gründen, nicht nur 
// das wir keinen Parameter der Person für "firstName" mitgeben können. 
// Der korrekte Ort für den Aufruf von Person ist oben, wo wir es 
// von Student aufrufen.
Student.prototype = Object.create(Person.prototype); // See note below

// Setzt die "constructor" Eigenschaft um auf Student zu referenzieren.
Student.prototype.constructor = Student;

// Ersetzt die "sayHello" Methode
Student.prototype.sayHello = function(){
  console.log("Hello, I'm " + this.firstName + ". I'm studying "
              + this.subject + ".");
};

// Fügt die "sayGoodBye" Methode hinzu
Student.prototype.sayGoodBye = function(){
  console.log("Goodbye!");
};

// Beispieleinsatz:
var student1 = new Student("Janet", "Applied Physics");
student1.sayHello();   // "Hello, I'm Janet. I'm studying Applied Physics."
student1.walk();       // "I am walking!"
student1.sayGoodBye(); // "Goodbye!"

// Check that instanceof works correctly
console.log(student1 instanceof Person);  // true 
console.log(student1 instanceof Student); // true

以上是关于javascript 此代码段显示了如何在纯JavaScript中实现面向对象的继承,以便可以继承正确的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在纯 JavaScript 中切换元素的类?

如何在纯 JavaScript 中平滑滚动到元素

JSX 在纯 JavaScript 文件中工作,如何?

如何在纯Javascript中选择嵌套元素?

如何从 JavaScript 连接到 MySQL?

如何在此处正确实现去抖动时间,以便在纯 JavaScript 中每个时间限制仅触发一次?