Задать вопрос
@dsmaslov

Как получить сразу значение из метода объекта с this?

var simillarAds = [
  {
    'author': {
      'avatar': generateAvatarUrl(1)
    },

    'offer': {
      'address': function () {
        return this.location.x + ', ' + this.location.y;
      },
      'location': {
        'x': randomInteger(X_LOCATION_START, X_LOCATION_END),
        'y': randomInteger(Y_LOCATION_START, Y_LOCATION_END)
      }
    }
  }
];


Если делать метод address анонимным и сразу вызывать его, то this теряет область видимости. Как в таком случае сделать так, чтобы объект address возвращал сразу значения из location.x ( функция, где генерируется случайное число и возвращается) и location.y (тоже) с помощью только ES5?

И можете приложить статью по этой теме? По потере this уже читал, но именно мою ситуацию нагуглить не смог.
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя i1yas К ответам на вопрос (2)
@i1yas
можно так
var simillarAds = [
  {
    'author': {
      'avatar': generateAvatarUrl(1)
    },

    'offer': {
      get address () {
        return this.location.x + ', ' + this.location.y;
      },
      'location': {
        'x': randomInteger(X_LOCATION_START, X_LOCATION_END),
        'y': randomInteger(Y_LOCATION_START, Y_LOCATION_END)
      }
    }
  }
];
Ответ написан