2013-07-23 3 views
0

Как только я добавляю ниже код на HTML-страницу, я получаю:Как исключить некоторые типы Js при добавлении прототипа объекта

Uncaught TypeError: Object function (constrname) { 
    if(this.constructor.name===constrname){ 
     return true; 
    } 

    return false; 
} has no method 'exec' 

Это прототип, который вызывает ошибку:

Object.prototype.isInstanceOf=function(constrname) { 
    if(this.constructor.name===constrname){ 
     return true; 
    } 

    return false; 
}; 

Добавление прототипа кажется перерыв jQuery.

Могу ли я исключить некоторые типы при определении новых прототипов типа объекта. Например, исключить: тип JQuery, ...

я попытался следующий код, но он напрасно:

Object.prototype.isInstanceOf=function(constrname) { 
     if(!(this instanceof jQuery)){ 
       //write here code 
     } 
} 
+3

Нет. Вместо этого сделайте его неперечислимым. Еще лучше, не делайте этого вообще. – SLaks

+0

Не могли бы вы рассказать об условиях, которые вызывают эту ошибку? Я думаю, что jQuery достаточно хорошо написана, чтобы не сломать что-то подобное. – sabof

+0

@SLaks благодарит за ответ, но кто я должен сделать его неперечислимым и как? –

ответ

0

Нет, это невозможно. Вся точка прототипного наследования заключается в том, что объекты на прототипе наследуются каждые потомок. Вы не можете удалить их.