@unclechu в ie8- нет нормального объектного api, и полноценная его эмуляция невозможна, поизвращаться можно только так:
...
function C(){}
C.prototype = Error.prototype;
object.exceptions[key].prototype = new C;
object.exceptions[key].prototype.constrictor = object.exceptions[key];
...
err.constructor === object.exceptions.IncorrectLink;
...
Нужен запрет - понятия не имею, через что навешиваются обработчики. Можно банально, но это трэш:
var fulfilled = false;
function handle() {
if(!fulfilled){
// логика ...
fulfilled = true;
}
}
@Fesor не будет. Пример писать лениво, первое, что нагуглил - habrahabr.ru/post/167033 . Само собой, лучше использовать на setTimeout, а эффективное отложенное исполнение.
@YURY_PETRANKOV это уже тема далекая от самого javascript. Тут все отдано на откуп движков. Современные - анализируют код и представляют его как настоящие классы. А вот когда анализируют, при компиляции или первом исполнении - кто как, v8, если не ошибаюсь - при первом исполнении.
@Satanpit мой вариант - сервис, а в какой форме - не суть важно. Подходить-то $rootScope для данной задачи вполне подходит, вот только это плохая практика.
...
function C(){}
C.prototype = Error.prototype;
object.exceptions[key].prototype = new C;
object.exceptions[key].prototype.constrictor = object.exceptions[key];
...
err.constructor === object.exceptions.IncorrectLink;
...