Skip to content

Instantly share code, notes, and snippets.

View CrabDude's full-sized avatar

Adam Crabtree CrabDude

View GitHub Profile
@CrabDude
CrabDude / crockford.js
Created February 10, 2011 21:40
Crockford's "Private Members in JavaScript"
// Public
function Constructor(...) {
this.membername = value;
}
Constructor.prototype.membername = value;
// Private
function Constructor(...) {
var that = this;
var membername = value;
@CrabDude
CrabDude / pvt.js
Created February 10, 2011 20:34
Pvt.js - JavaScript Private Instance Members
/* Pvt.js - JavaScript Private Instance Members
* By Adam Crabtree http://noderiety.com/
* MIT Licensed.
*/
/**
* Generate a private member store
* @returns {function} The private member accessor function
*/
function Pvt() {
@CrabDude
CrabDude / privates.js
Created February 10, 2011 20:34
Privates.js - JavaScript Inheritance With Inheritable Private Instance Members
/* Privates.js - Simple JavaScript Inheritance With Inheritable Private Variables
* By Adam Crabtree http://noderiety.com/
* MIT Licensed.
*
* Forked from:
* Simple JavaScript Inheritance
* By John Resig http://ejohn.org/
* http://ejohn.org/blog/simple-javascript-inheritance/
* Inspired by base2 and Prototype
*/
@CrabDude
CrabDude / basic.js
Created February 10, 2011 20:32
Pvt.js Example: Simple (Non-Inheritable) Private Instance Members
// Utilize a closure to keep the private members private
var Person = (function() {
// Generate a private instance member accessor function "pvt"
var pvt = Pvt(),
// private static member
species = "Homo sapien";
var Self = function(isDancing) {
@CrabDude
CrabDude / inheritance.js
Created February 8, 2011 21:32
Private.js Example: Inheritable Private Instance Members
// Class.extend takes a function that returns the options object
// it is passed the accessor function generated in the Pvt.js example above
var Person = Class.extend(function(pvt) {
// private static member
var species = "Homo sapien";
return {
init: function(isDancing) {
// pvt(this).invisible === undefined
// NOT AN APPLICATION, I JUST WANTED TO TAKE YOUR TEST. =)
// 1: how could you rewrite the following to make it shorter?
if (foo) {
bar.doSomething(el);
} else {
bar.doSomethingElse(el);
}
// ANSWER