Добавить метод получения / установки JavaScript в собственное не настраиваемое свойство - PullRequest
2 голосов
/ 07 февраля 2012

Я использую специальные методы получения / установки для перехвата изменений, внесенных в свойства объекта, и в настоящее время он отлично работает для любых обычных пользовательских свойств.Тем не менее, я бы полюбил , если бы мог использовать ту же идею для встроенных свойств, таких как HTMLInputElement.value или Array.length, но, к сожалению, они определены как неконфигурируемые, и поэтому я получаю ошибку при попытке переопределить ихиспользуя getter / setter.

Мне просто интересно, есть ли какой-нибудь (надежный) взлом, который я могу сделать, чтобы заставить их переопределиться, не нарушая их внутреннюю работу.

Если нетЯ, вероятно, буду вынужден определить альтернативные свойства для всех из них, которые просто отображаются на собственные свойства и используют их вместо этого, но это просто не идеально.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Работа с JavaScript 1.8.1 на более поздних версиях: Определение методов получения и установки

0 голосов
/ 07 февраля 2012

, что никоим образом не является хорошей практикой, но если вам действительно нужно, эти функции определены на уровне прототипа так:

Array.prototype.length = (function(){})();

Хорошо, я думаю, что даже этот подход не работает с некоторыми функциями, они должны быть защищены

...