@teopraktik

Как добавить метод и свойство массива для прототипа конструктора Array?

Здравствуйте.
Подскажите пожалуйста как реализовать метод и свойство массива для прототипа конструктора Array?
Например:
['один', 'два', 'три'].last() // 'три'
['один', 'два', 'три'].last // 'три'
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Array.prototype.last = function() { 
  return this[this.length-1] 
}
// [1,2,3].last()
// 3

Но модификация прототипа - плохая практика.

метод и свойство массива

Метод это и есть свойство. Просто это псевдоним, который говорит, что свойство хранит в себе функцию.

Но если всё же нужно чтобы было без круглых скобок, то это через дескриптор get нужно объявлять.
https://learn.javascript.ru/property-accessors
Object.defineProperty(Array.prototype, 'last', {
  get: function() {
    return this[this.length-1] 
  },
  enumerable: false,
  configurable: false
})

// [1,2,3].last
// 3
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы