Ошибка в классе. Использование do..while [закрыт]

82
08 июня 2021, 05:40
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

'use strict'; 
class Car { 
  constructor(maxSpeed, speed, isOn, distance, price) { 
    this.maxSpeed = maxSpeed; 
    this.speed = speed; 
    this.isOn = isOn; 
    this.distance = distance; 
    this.price = price; 
  } 
 
  static getSpecs(car) { 
    // console.log(maxSpeed, speed, isOn, distance, price); 
 
    return this.maxSpeed, this.speed, this.isOn, this.distance, this.price; 
  } 
 
  get turnOn() { 
    return this.price; 
  } 
 
  set turnOn(price) { 
    this.price = price; 
  } 
 
  /* 
   * Добавь геттер и сеттер для свойства price, 
   * который будет работать с свойством цены автомобиля. 
   */ 
 
  /* 
   * Добавь код для того чтобы завести автомобиль 
   * Записывает в свойство isOn значение true 
   */ 
  turnOn() { 
    this.isOn = true; 
  } 
 
  /* 
   * Добавь код для того чтобы заглушить автомобиль 
   * Записывает в свойство isOn значение false, 
   * и сбрасывает текущую скорость в 0 
   */ 
 
  turnOff() { 
    this.isOn = false; 
    this.speed = 0; 
  } 
  /* 
   * Добавялет к свойству speed полученное значение, 
   * при условии что результирующая скорость 
   * не больше чем значение свойства maxSpeed 
   */ 
  accelerate(value) { 
    // this.speed += value; 
    // while (this.speed < this.maxSpeed) { 
    //   // console.log('counter: ', counter); 
    //   // this.speed += value; 
    // } 
 
    this.speed > this.maxSpeed; 
    this.speed += value; 
  } 
 
  /* 
   * Добавялет к свойству speed полученное значение, 
   * при условии что результирующая скорость 
   * не больше чем значение свойства maxSpeed 
   */ 
  decelerate(value) { 
    this.speed -= value; 
    this.speed !== 0; 
  } 
 
  /* 
   * Добавляет в поле distance киллометраж (hours * speed), 
   * но только в том случае если машина заведена! 
   */ 
  drive(hours) { 
    this.distance = hours * speed; 
  } 
} 
const mustang = new Car({ maxSpeed: 200, price: 2000 }); 
 
mustang.turnOn(); 
mustang.accelerate(50); 
mustang.drive(2); 
 
Car.getSpecs(mustang); 
// maxSpeed: 200, speed: 50, isOn: true, distance: 100, price: 2000 
 
mustang.decelerate(20); 
mustang.drive(1); 
mustang.turnOff(); 
 
Car.getSpecs(mustang); 
// maxSpeed: 200, speed: 0, isOn: false, distance: 120, price: 2000 
 
console.log(mustang.price); // 2000 
mustang.price = 4000; 
console.log(mustang.price); // 4000

Answer 1

Качество Ваших вопросов повышается на глазах :).

drive(hours) {
  this.distance = hours * this.speed; // !!! this.speed
}

Пожалуйста. Успехов! Знак "галочка" - слева от ответа.

accelerate(value) {
  if (this.speed + value <= this.maxSpeed) {
    this.speed += value;
    return true;
  } else {
    return false;
  }
}
constructor(options) {
  this.maxSpeed = options.maxSpeed || 0;
  this.speed = options.speed || 0;
  this.isOn = options.isOn || false;
  this.distance = options.distance || 0;
  this.price = options.price || 0;
}
Answer 2

'use strict'; 
class Car { 
  constructor(Car) { 
   
    this.maxSpeed = Car.maxSpeed || 0; 
    this.speed = Car.speed || 0; 
    this.isOn = Car.isOn || false; 
    this.distance = Car.distance || 0; 
    this.price = Car.price || 0; 
  } 
 
  static getSpecs(car) { 
    console.log(car); 
 
    // return this.maxSpeed, this.speed, this.isOn, this.distance, this.price; 
  } 
 
  get turnOn() { 
    return this.price; 
  } 
 
  set turnOn(price) { 
    this.price || 0; 
  } 
 
  /* 
   * Добавь геттер и сеттер для свойства price, 
   * который будет работать с свойством цены автомобиля. 
   */ 
 
  /* 
   * Добавь код для того чтобы завести автомобиль 
   * Записывает в свойство isOn значение true 
   */ 
  turnOn() { 
    this.isOn || false; 
  } 
 
  /* 
   * Добавь код для того чтобы заглушить автомобиль 
   * Записывает в свойство isOn значение false, 
   * и сбрасывает текущую скорость в 0 
   */ 
 
  turnOff() { 
    this.isOn || false; 
    this.speed = 0; 
  } 
  /* 
   * Добавялет к свойству speed полученное значение, 
   * при условии что результирующая скорость 
   * не больше чем значение свойства maxSpeed 
   */ 
  
 
  accelerate(value) { 
    if (this.speed + value <= this.maxSpeed) { 
      this.speed += value; 
      return true; 
    } else { 
      return false; 
    } 
  } 
 
  /* 
   * Отнимает от свойства speed полученное значение, 
   * при условии что результирующая скорость не меньше нуля 
   */ 
  decelerate(value) { 
    this.speed -= value; 
    this.speed !== 0; 
    if (this.speed - value !== 0) { 
      this.speed += value; 
      return true; 
    } else { 
      return false; 
    } 
  } 
 
  /* 
   * Добавляет в поле distance киллометраж (hours * speed), 
   * но только в том случае если машина заведена! 
   */ 
  drive(hours) { 
    this.distance = hours * this.speed; 
  } 
} 
const mustang = new Car({ maxSpeed: 200, price: 2000 }); 
 
mustang.turnOn(); 
mustang.accelerate(50); 
mustang.drive(2); 
 
Car.getSpecs(mustang); 
// maxSpeed: 200, speed: 50, isOn: true, distance: 100, price: 2000 
 
mustang.decelerate(20); 
mustang.drive(1); 
mustang.turnOff(); 
 
Car.getSpecs(mustang); 
// maxSpeed: 200, speed: 0, isOn: false, distance: 120, price: 2000 
 
console.log(mustang.price); // 2000 
mustang.price = 4000; 
console.log(mustang.price); // 4000

READ ALSO
Практика VS Теория в программировании [закрыт]

Практика VS Теория в программировании [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах

119
Как найти значение вложенного обьекта

Как найти значение вложенного обьекта

Пытаюсь сделать helper функцию, в которую первым аргументом мы передаём обьект в котором исчем, а вторым это ключ которой должны получитьПроблема...

65
Форматирование текста JS (RegExp)

Форматирование текста JS (RegExp)

Я тут практикуюсь в изучении JavaScript и столкнулся с одной ситуацией: Мне для нормального функционирования нужно число (к примеру 32) перевести...

91