Мне нужно расширить класс, чтобы можно было делать так:
[1, 2, 3].property.containsKey('0')
Нужно именно для объекта проверять, есть ли ключ.
Особенность в том, что нельзя создать новый объект, нужно именно расширить базовый.
Я написал код ниже, но this
оказывается равным undefined
.
Как добиться правильной работы?
Object.prototype.property = {
containsKey: (key) => {
return key in this;
}
};
В приведенном коде, добиться "правильной" работы не получится, так как нет возможности получить объект, по свойству.
Поэтому самое простое решение - убрать лишнюю прослойку .property
Object.prototype.containsKey = function(key) {
return key in this;
};
console.log([1, 2, 3].containsKey('0'))
Если прослойка зачем-то нужна, то можно объявить getter
с помощью Object.defineProperty
Object.defineProperty(Object.prototype, 'property', {
get: function() {
return {
containsKey: (key) => key in this
};
}
});
console.log([1, 2, 3].property.containsKey('0'))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Использую NavLink для формирования адресной строкиВ одной из компонент url формируется по шаблону:
сделал аяксом запрос на покупку тарифплана на сайте, дополнительно захотелось выполнить валидацию на сервере (например если введенная сумма...
Для расчета дней в периоде использую вот такую функцию
Как создавать свой шаблон в SuggestView я понял, но как вывести данные от SuggestView в шаблоне - я так и не понял