переопределить функцию delete js - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь переопределить функцию delete в объекте наследования, но это не сработало. что я не исправляю

function Card(name, balans) {
  this.name = name;
  this.balans = balans;
}
Card.prototype.delete = function(money) {
  return this.balans = this.balans - money;
}

function DeditCard(name, balans) {
  this.name = name;
  this.balans = balans;
  delete = function(money) {
    if ((balans - money) > 0) {
      return balans = balans - money;
    } else {
      console.log('error');
      return balans;
    }
  }
}
DeditCard.prototype = Object.create(Card.prototype);
let card0 = new DeditCard("First person", 10);
console.log(card0.balans); //10
card0.delete(80); //must be error
console.log(card0.balans); // must be 10

1 Ответ

0 голосов
/ 24 апреля 2020

Функция delete для DeditCard должна быть DeditCard.prototype.delete, а не локальной функцией в конструкторе.

И ей нужно использовать this.balans, а не balans, как Card.prototype.delete.

function Card(name, balans) {
  this.name = name;
  this.balans = balans;
}
Card.prototype.delete = function(money) {
  return this.balans = this.balans - money;
}

function DeditCard(name, balans) {
  this.name = name;
  this.balans = balans;
}
DeditCard.prototype = Object.create(Card.prototype);
DeditCard.prototype.delete = function(money) {
  if ((this.balans - money) > 0) {
    return this.balans = this.balans - money;
  } else {
    console.log('error');
    return this.balans;
  }
}
let card0 = new DeditCard("First person", 10);
console.log(card0.balans); //10
card0.delete(80); //must be error
console.log(card0.balans); // must be 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...