JSFiddle - React, Tailwind, and code Playground
by Jon-Carlos Rivera
JavaScript
function Person(name) {
this._name = name;
}
Person.prototype = {
sayName: function () {
return this._name;
}
};
Person.extend = function extend(obj) {
var parent = this,
prop;
var target = Object.create(parent.prototype);
for (prop in parent) {
if (parent.hasOwnProperty(prop)) {
target[prop] = parent[prop]
}
}
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
target[prop] = obj[prop]
}
}
var constructify = function(){
parent.apply(this, arguments);
};
constructify.prototype = target;
return constructify;
};
var Parent = Person.extend({
sleep: function () {
return 'snooore';
}
});
var Dog = Person.extend({
sayName: function () {
return this._name + ' says woof!';
}
});
var parent = new Parent('R0ckET');
alert(parent.sayName()); // R0ckET
alert(parent.sleep());
// Doggy
alert(new Dog('Spot').sayName());