Последняя задача привела method к объекту duck . Он использовал duck.name для доступа к значению свойства name в операторе return: sayName: function() {return "The name of this duck is " + duck.name + ".";} Хотя это действительный способ доступа к объекту, здесь есть ошибка. Если имя переменной изменяется, необходимо также обновить любой код, ссылающийся на исходное имя. В определении коротких объектов это не проблема, но если у объекта много ссылок на его свойства, вероятность появления ошибки больше. Чтобы избежать этих проблем, this ключевое слово:
let duck = {
имя: «Афлак»,
numLegs: 2,
sayName: function () {return "Название этой утки:" + this.name + ".";}
};
this глубокая тема, и приведенный выше пример - только один способ ее использования. В текущем контексте this относится к объекту, с которым связан метод: duck . Если имя объекта изменено на mallard , нет необходимости находить все ссылки на duck в коде. Это делает код многоразовым и более простым для чтения.Измените метод dog.sayLegs чтобы удалить ссылки на dog . Используйте пример duck для руководства.