Вам уже ответили выше про подводные камни использования
this в методах объектов.
Но правильней использовать именно
this. Почему? В случае необходимости изменения имени ссылки на объект или необходимости экспортировать объект как модуль, вам не придется править реализацию методов. Так же, это повышает читаемость. Ну, а в случае если метод надо передать в другое место, используйте
bind:
const a = {
b() {
this.с();
},
c() {
alert('expected result');
}
}
const d = {
b: a.b.bind(a),
c() {
alert('wow');
}
};
d.b(); // => "expected result"
Короткая форма записи методов объектов более удобна и читаема. Используйте ее в своем коде.
Длиная форма записи:
var obj = {
a: function() {
// do something
},
b: function() {
// do something
}
};
Короткая форма записи:
const obj = {
a() {
// do something
},
b() {
// do something
}
};