JSFiddle - React, Tailwind, and code Playground

by mshufrich

JavaScript

function Avto(type) {
    this.type ={
        wheels = 4;
        engine = true;
    var runningTime = function(distance) {
        console.log("parent run");
        return distance / speed;
    };
               };
    return {
        name: name,
        runningTime: runningTime
    }
};

function Rabbit(type) {
    // вызвать конструктор родителя,
    // получить родительский объект в self
    var type = small(type);
    // добавить приватную переменную
    var bak = 35;
    /* добавить новые методы к self */
    type.bak = function() { 
        jumps++; 
    };
    self.getJumps = function() { 
        return jumps; 
    };
    
    var superRunningTime = self.runningTime;
    
    self.runningTime = function(distance) {
        this.jump();
        console.log("rabbit run");
 
        // вызвать родительский метод
        return superRunningTime.call(this, distance);
    }
 
    return self;
}

var pet1 = Rabbit("Fluffy");
var pet2 = Animal();

console.log(pet1.runningTime(5));
pet1.jump();
console.log(pet1.getJumps());
console.log(pet1.runningTime(1));
console.log(pet1.getJumps());
console.log(pet1 instanceof Object);
console.log(pet2 instanceof Object);