Object Fruit, prototype extend / js /
by asdf
JavaScript
var i = 1;
function Fruit(name) {
this.name = name;
this.canEat = true;
this.index = i;
i++;
}
Fruit.prototype.eat = function() {
console.log('eat ' + this.name, this.index);
}
//console.log(Fruit.prototype.constructor === Fruit);
function Banana(name) {
this.super(name);
this.name = name;
//this.canEat = false;
this.skin = true;
}
function extend(subclass, superclass) {
function F() {}
F.prototype = superclass.prototype;
subclass.prototype = new F();
subclass.prototype.constructor = subclass;
subclass.prototype.super = superclass;
console.log(subclass.prototype.constructor);
}
console.log(Banana.prototype.constructor === Banana);
extend(Banana, Fruit);
console.log(Banana.prototype.constructor === Banana);
var bananaInstance = new Banana('banana');
bananaInstance.eat();
var bananaInstance1 = new Banana('banana1');
bananaInstance1.eat();
var apple = new Fruit('apple');
Fruit.prototype.throw = function() {};
Banana.prototype.foo = 1;