Неназванный класс JS и его неназванный расширенный класс

#javascript #class #unnamed-class

#javascript #класс #неназванный класс

Вопрос:

Operation класс создает массив, подобный этому, у которого нет имени класса перед массивом.

 [operInputQuery[0].value, operInputQuery[1].value, operInputQuery[2].value]
  

Класс ‘Table’ предназначен для того, чтобы быть неназванным классом, наследующим конструкторы Operation .

Он наследуется должным образом, однако создает массив с ненужным тегом extends вот так.

 extends[operInputQuery[0].value, operInputQuery[1].value, operInputQuery[2].value, operInputQuery[3].value]
  

Да, я не хочу создавать массив с помощью ‘extends’.

Как я могу создать неназванный расширенный класс?

 let Operation = class { //unamed class
  constructor(a, b, c) {
    this.a = operInputQuery[0].value;
    this.b = operInputQuery[1].value;
    this.c = operInputQuery[2].value;
  }
}

let Table = class extends Operation { //purposed to write an unnmaed extended class
  constructor(a, b, c, d){
    super(a, b, c);
    this.a;
    this.b;
    this.c;
    this.d = operInputQuery[3].value;
    }
};  

Комментарии:

1. Почему вы передаете a, b, c внутри конструктора и присваиваете им значения? Кажется, здесь что-то не так. Кроме того, что такое operInputQuery?

2. Вопрос в том, как создать неназванный расширенный класс.

3. Классы могут быть анонимными, точно так же, как функции. Как создается массив? Не имеет смысла, что к нему каким-то образом добавлялось бы имя класса, даже если бы у класса было имя

Ответ №1:

operInputQuery отсутствует, но я предполагаю, что это массив объектов со свойством value, попробуйте это:

 let operInputQuery = [{value: 1}, {value: 2}, {value: 3}, {value: 4}];

let Table = class { 
  constructor(a, b, c, d){
    this.a = a;
    this.b = b;
    this.c = c;
    this.d = d;
    }
};

let table = new Table(operInputQuery[0].value, operInputQuery[1].value, operInputQuery[2].value, operInputQuery[3].value);
console.log(table);  

Комментарии:

1. operInputQuery — это функция, которую я создаю, и я не переписываю код здесь, потому что для этого требуется html-часть. В любом случае, спасибо вам за ваши усилия, но вы предлагаете создать другой класс ‘Table’, который мне не нужен.