JSFiddle - React, Tailwind, and code Playground
by amatiasq
HTML
<script src="http://amatiasq.com/fiddle-console.js"></script>
JavaScript
var id = 0;
function createId() { return id++ }
var Enemy = {
_pool: [],
new: function() {
var instance = this._pool.length ?
this._pool.pop() :
Object.create(this);
instance.constructor.apply(this, arguments);
return instance;
},
constructor: function() {
this.id = createId();
},
dispose: function() {
delete this.id;
Enemy._pool.push(this);
},
die: function() {
console.log('Tell my wife I love her...');
},
};
var enemy1 = Enemy.new();
enemy1.die();
enemy1.dispose();
// aquí deberíamos setear enemy1 a null
// porque puede ser reciclado en cualquier momento
//enemy1 = null;
var enemy2 = Enemy.new();
console.log(enemy1 === enemy2); // true