JSFiddle - React, Tailwind, and code Playground
JavaScript
function Rabbit(message){
this.toString = function(){ return "I'm a rabbit"+message;};
}
var Magician = {};
Magician.pullRabbit = function(anything) {
return "Tada, I pulled a "+anything.pullOfHat();
}
function makePullable(obj){
obj.pullOfHat = function(){
return new Rabbit(" Rabbit( from: "+obj+")");
}
}
var a = {a:4,b:6};//some object
var b = new Date();// A date object
var c = [];//An array object
var d = new Number(15);// note the boxing, since a number is a value type;
makePullable(a);
makePullable(b);
makePullable(c);
makePullable(d);
document.body.innerHTML += Magician.pullRabbit(a)+"<br />";
document.body.innerHTML += Magician.pullRabbit(b)+"<br />";
document.body.innerHTML += Magician.pullRabbit(c)+"<br />";
document.body.innerHTML += Magician.pullRabbit(d)+"<br />";