Использование в объекте своих же свойств

91
11 мая 2021, 15:00

Никак не могу понять в чём ошибка, неужели так делать нельзя...

    let hash = { 
        a: 5, 
        b: 2, 
        all: [this['a'], this['b']], 
    }; 
    console.log(hash.all);

Answer 1

Если не понятно, где ошибка, надо начать с того места, где не было ошибки и пошагово наращивать код, попробовать поймать место с ошибкой. Например, вывести this для начала:

let hash = { 
  a: 5, 
  b: 2, 
  all: this 
}; 
console.log(hash.all);

Здесь это глобальный объект window ) Соответственно, у него нет свойств a и b, оттуда и undefined.

А вот встроенная функция - уже подхватит именно этот объект как this:

let hash = { 
  a: 5, 
  b: 2, 
  all: function(){ 
    return [this.a, this.b]; 
  } 
}; 
 
console.log( hash.all() ); // результат вызова функции 
console.log( hash.all ); // сама функция

P.s.

let hash = { 
  a: 5, 
  b: 2, 
  c: 1, 
}; 
 
console.log( Object.keys( hash ) ); // Собирает массив из ключей 
console.log( Object.values( hash ) ); // Собирает массив из значений

READ ALSO
Ошибка с константной

Ошибка с константной

У меня есть структура, которая хранит событие и флаг является оно последним или нет

93
Комбинация директив для openmp

Комбинация директив для openmp

К примеру у меня есть некий цикл для распаралеливания:

80
SFML, технический вопрос про белый квадрат

SFML, технический вопрос про белый квадрат

Рассмотрим следующий код:

101