Я получаю несколько ошибок типа всякий раз, когда добавляю перечислимую функцию прототипу объекта.Uncaught TypeError при добавлении перечислимой функции прототипу объекта
jquery-1.10.2.js:2451 Uncaught TypeError: matchExpr[type].exec is not a function
at tokenize (jquery-1.10.2.js:2451)
at Function.Sizzle [as find] (jquery-1.10.2.js:1269)
at init.find (jquery-1.10.2.js:5744)
at change-project-controller.js:4
at change-project-controller.js:255
tokenize @ jquery-1.10.2.js:2451
Sizzle @ jquery-1.10.2.js:1269
find @ jquery-1.10.2.js:5744
(anonymous) @ change-project-controller.js:4
(anonymous) @ change-project-controller.js:255
jquery-1.10.2.js:2451 Uncaught TypeError: matchExpr[type].exec is not a function
at tokenize (jquery-1.10.2.js:2451)
at Function.Sizzle [as find] (jquery-1.10.2.js:1269)
at init.find (jquery-1.10.2.js:5744)
at filter-by-registrant-controller.js:10
at filter-by-registrant-controller.js:179
tokenize @ jquery-1.10.2.js:2451
Sizzle @ jquery-1.10.2.js:1269
find @ jquery-1.10.2.js:5744
(anonymous) @ filter-by-registrant-controller.js:10
(anonymous) @ filter-by-registrant-controller.js:179
jquery-1.10.2.js:2451 Uncaught TypeError: matchExpr[type].exec is not a function
at tokenize (jquery-1.10.2.js:2451)
at Function.Sizzle [as find] (jquery-1.10.2.js:1269)
at init.find (jquery-1.10.2.js:5744)
at registrations-controller.js:6
at registrations-controller.js:412
tokenize @ jquery-1.10.2.js:2451
Sizzle @ jquery-1.10.2.js:1269
find @ jquery-1.10.2.js:5744
(anonymous) @ registrations-controller.js:6
(anonymous) @ registrations-controller.js:412
Index:290 Uncaught TypeError: Cannot read property 'registerFilter' of undefined
at Index:290
(anonymous) @ Index:290
Обратите внимание, что последняя из четырех ошибок не имеет никакого отношения к jQuery.
Это код, который приводит к возникновению ошибки:
Object.defineProperty(Object.prototype, "select", {
enumerable: true,
value: function() {
return "hello world";
}
});
Я не получаю ошибки, если добавить функцию как не перечислимы, как это:
Object.defineProperty(Object.prototype, "select", {
enumerable: false,
value: function() {
return "hello world";
}
});
Обратите внимание, что Единственное отличие состоит в том, что перечисляемый элемент установлен в false
. Кроме того, если я изменяю перечислимую функцию, добавляемую в Array, а не Object, код работает нормально.
Проект, над которым я работаю, не является моим, поэтому я не могу поделиться им, и мне не удалось воспроизвести ошибку в jsfiddle или в простом HTML-файле.
Я понимаю, что вы имеете в виду, и я полностью уважаю это. Однако я обеспокоен тем, почему моя функция registerFilter внезапно исчезнет, потому что я добавляю перечислимую функцию. Есть идеи? –
@RobinTheilade: Я боюсь это понять, нам нужно иметь MCVE, о котором вы сказали, что не смогли создать. По сути, что-то, где-то, сбивается с вопроса выше, и это имеет эффект постукивания, вызывающий ошибку, которую вы видите. Единственный способ узнать наверняка - продолжать создавать MCVE (как в процессе этого, вы, вероятно, выясните это). Но это вряд ли будет полезным способом провести время; в принципе, просто не добавляйте перечисления в корневой прототип. :-) –