我尝试在继承对象中覆盖函数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
该 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