Warum funktioniert der folgende Code nur unter Node.js 5.x und 6.x, aber bricht in 4.x und früheren Versionen?Versionsabhängige Vererbung in Node.js
Gibt es eine Möglichkeit, es so zu ändern, dass es in jedem Node.js 0.10.x - 6.x funktioniert?
'use strict';
var util = require('util');
function Parent() {
}
Parent.prototype.show = function() {
return this.msg(); // virtual-like call;
};
function Child() {
}
Child.prototype.msg = function() {
return 'Hello!';
};
util.inherits(Child, Parent);
var test = new Child();
console.log(test.show());
In Node.js 5.x und 6.x zeigt es Hello!
. Und in jeder früheren Version von Node.js wird TypeError: this.msg is not a function
angezeigt.
Leider existiert 'setPrototypeOf' nicht in Node.js 0.10.x. Irgendeine Idee, wie man das umgeht? –
Sie können die [Polyfill] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf#Polyfill) für "Object.setPrototypeOf" verwenden oder Ihre eigenen benutzerdefinierten "Vererben" 'Funktion. –
Die Verwendung des Polyfill für 'setPrototypeOf' ist die beste Lösung. Vielen Dank! –