Skip to content

Instantly share code, notes, and snippets.

@subtleGradient
Created September 29, 2011 20:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save subtleGradient/1251865 to your computer and use it in GitHub Desktop.
Save subtleGradient/1251865 to your computer and use it in GitHub Desktop.
Minimal Object Pattern
exports.constructor = function(){}
exports.constructor.prototype = exports
exports.create = function(){
return this.constructor.apply(Object.create(this), arguments)
}
exports.property = 'foo'
exports.method = function(){return this.property}
// singleton
var prim = require('prim')
console.assert(prim.method() == 'foo')
// OOP 'Class' (MooTools, Prototype.js, etc...)
var Prim = require('prim').constructor
var myPrim = new Prim
console.assert(myPrim.method() == 'foo')
// ES5
var prim = require('prim')
var myPrim = Object.create(prim)
console.assert(myPrim.method() == 'foo')
var prim = require('prim')
var myPrim = prim.create()
console.assert(myPrim.method() == 'foo')
Copy link

ghost commented Feb 6, 2012

Very clever.

@subtleGradient
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment