Küçük bir JS kitaplığı geliştiriyordum ve orada özel Hata istisnaları kullanıyordum.JavaScript hatalarını/istisnasını genişletme
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(){...}
zamanki miras gibi görünüyor .. Ama: (? ORLY)
Yani, bu şekilde yerli JavaScript hatası nesneden bunları miras karar! , Hata yapıcı içinde değilse -
var MyError = function(msg){
this.message = msg;
};
Ama sorum şu:
var err = new MyError("hello! this is text!");
console.log(err.message); // is giving me empty string!
Bu here hakkında ve MDN makaleleri okudum, ama bunların hepsi bana böyle bir şey kullanmak söyleyerek mesajın nerede başlatıldığı? Birileri yerli hata yapıcısının nasıl çalıştığını bilir mi?
Teşekkürler!
P.S. Eğer ilginç - Enum.js kütüphanesi geliştiriyordum.
mümkün olduğunca basit yapma ... sınırlı biraz şunlardır:) ( 'var obj = new Hata; Error.call (obj, "Merhaba, dünya!"); Bu, ya da çalışmıyor. 'Hata' tuhaftır. – Ryan
@minitech: * "Hata' tuhaftır. "* +1 –