Ich schaffe diese Code-Block in javascript:Javascript Vererbung Endlosschleife
function Shape() {}
Shape.prototype.name = "Shape";
Shape.prototype.toString = function() {
result = [];
if(this.constructor.uber) {
result[result.length] = this.constructor.uber.toString();
}
result[result.length] = this.name;
return result.join(', ');
}
function twoDShape() {};
twoDShape.prototype = new Shape();
twoDShape.prototype.constructor = twoDShape;
twoDShape.uber = twoDShape.prototype;
twoDShape.name = "twoD Shape";
var a = new twoDShape();
console.log(a.toString());
Ich weiß nicht, warum, aber wenn ich es laufen, firefox ist einfrieren. Ich habe Stunden damit verbracht, es herauszufinden. Und meine Vermutung ist, es sollte eine unendliche Schleifen in meinem Code geben und es lebt irgendwo in der if-Bedingung, aber ich habe es nicht herausgefunden. Könnte mir jemand aus diesen Kopfschmerzen helfen? Vielen Dank!
Um genau zu sein, ist es in der toString-Methode wie meine obige Antwort Schleife. Die Konstruktoren, die die gleichen sind, sind der Grund dafür (die Methode nennt sich selbst), ist aber nicht der eigentliche Grund für die Schleife. – sync