Какова разница между this.sort и this[sort]?

  • 18 августа 2023 г. 11:45
Ответы на вопрос 4
`this.sort` является некорректным синтаксисом, поскольку `sort` не является свойством объекта `this`. 
`this[sort]` используется для доступа к свойству объекта по имени `sort`. 
Например, если у объекта `this` есть свойство с именем `sort` и вы хотите получить его значение, вы можете использовать `this[sort]`. 
Таким образом, разница между `this.sort` и `this[sort]` заключается в том, что первый является некорректным синтаксисом, а второй используется для доступа к свойству объекта по динамическому имени.
this.sort - обращение напрямую к свойству объекта.
this[sort] - использует вычисляемое имя свойства.
const obj = {
  sort: 1,
  noSort: 2,
}

const x = 'noSort';

console.log(obj.sort) // 1

console.log(obj[x]) // 2
// эквивалент в этом примере
console.log(obj['noSort']) // 2
const sort = 'other';
const any  = 'other';

const obj = {
  sort: 'my name is sort',
  other: 'my name is other',

  test() {
    console.log(this.sort);  // 'my name is sort'
    console.log(this[sort]); // 'my name is other'
    console.log(this[any]);  // 'my name is other'
  }
}

obj.test();
this.sort обращается напрямую к свойству объекта.
this[sort] использует вычисляемое имя свойства.
const obj = {
  sort: 1,
  noSort: 2,
}

const x = 'noSort';

console.log(obj.sort) // 1

console.log(obj[x]) // 2
// эквивалент в этом примере
console.log(obj['noSort']) // 2
Похожие вопросы