Stavo sviluppando una piccola libreria JS e dovevo utilizzare le eccezioni di errore personalizzate.Estensione errori/eccezioni JavaScript
Così, ho deciso di ereditare loro di natale oggetto errore JavaScript in questo modo (ORLY?):
var MyError = function(){
Error.prototype.constructor.apply(this, arguments);
};
// Inherit without instantiating Error
var Surrogate = function(){};
Surrogate.prototype = Error.prototype;
MyError.prototype = new Surrogate();
// Add some original methods
MyError.prototype.uniqueMethod = function(){...}
Sembra che al solito eredità .. Ma!
var err = new MyError("hello! this is text!");
console.log(err.message); // is giving me empty string!
Ho letto articoli su questo here e sulle MDN, ma tutti loro dicendo me di utilizzare qualcosa di simile:
var MyError = function(msg){
this.message = msg;
};
Ma la mia domanda è - se non nel costruttore di errore, allora dove il messaggio è inizializzato? Qualcuno sa come funziona il costruttore nativo di Error?
Grazie!
P.S. Se è interessante, stavo sviluppando la libreria Enum.js.
Rendere più semplice possibile: 'var obj = new Errore(); Error.call (obj, "Hello, world!"); ' Questo non funziona neanche. "Errore" è strano. – Ryan
@minitech: * "Errore" è strano. "* +1 –