Skip to content

Instantly share code, notes, and snippets.

function SomeBuggyInstantiatedObject() {
this.name = "bob";
someElement.onclick = function() {
alert(this.name); // undefined, because this context is the click event
}
}
function SomeSuperCoolInstantiatedObject() {
var that = this;
this.name = "bob";
// A way to use module pattern along with new keyword
function Foo() {
this.baz = 4;
function bar() {
return this.baz;
}
return {
"bar":bar.bind(this)
};
}
@user24
user24 / accessproxy.js
Last active June 4, 2018 15:49
Proxy connections, opening up Access-control-allow-origin
/*jslint node:true*/
// Usage curl localhost:8080/http://example.com
// - proxies the request, adding Access-control-allow-origin: * and stripping Origin and Referer headers and fixing Host
"use strict";
var request = require("request"),
http = require("http"),
url = require("url");
http.createServer(function proxy(req, res) {
define(['require', 'dependency1', 'dependency2'], function (require, dependency1, dependency2) {
return function () {};
});
@user24
user24 / toggle.js
Created January 7, 2014 21:22
Toggle Comments
/**/
someCode();
goesHere();
lotsOfCode();
/**/
// With removal/addition of just one char we can toggle commenting of the whole block:
/**
someCode();
@user24
user24 / variable-names.js
Last active December 14, 2015 15:58
Code Clarity by hoisting logic into nicely named variables
// Succinct, does not create strictly unnecessary variables
// but not easy to read
if((a.notes && a.notes.trim() != "") && (b.notes && b.notes.trim() != "")) {
skip = true;
console.log('too many notes - skipping');
}
// Verbose, creates two vars which are not really needed
// but it's instantly clear what the 'if' is doing
var aHasNotes = (a.notes && a.notes.trim() != "");
@user24
user24 / snafu.txt
Created September 17, 2012 08:57
bigcouch snafu
$ telnet couchdb portno
Trying [ipaddress]...
Connected to couchdb
Escape character is '^]'.
GET /dbname/_design/dname/_view/viewname?key="keyname"&include_docs=true&limit=20&descending=true
HTTP/1.1 200 OK
X-Couch-Request-ID: 9dc69414
Server: CouchDB/1.1.1 (Erlang OTP/R14B01)
Etag: eb2051218277fa86006969ac40867b28
Date: Mon, 17 Sep 2012 08:28:02 GMT
@user24
user24 / facebook.js
Created August 22, 2012 17:10
facebook.js
var rawAnswers = [38,264,35];
// Truncate eg 12345 to 12 to account for data errors.
var answers = [];
rawAnswers.forEach(function(e, i, c) {
answers.push(parseInt(e.toString().substring(0,2)));
});
var correct=0,sum=0,b=[], mode='', maxi=0;
this.foo = 1;
console.log(this.foo); // 1
function First() {
this.foo = 2;
console.log(this.foo); // 2
}
First();
// declare shorthand vars
var o=document.body,c=o.children[0],w=4096,n=256,t=c.getContext("2d"),s=x=y=0;
// set canvas dimensions and background
c.width=c.height=w;c.style.background='#DDD';
// add a pretty description
h=document.createElement('p');
h.innerHTML='<p style="font-family:verdana;font-size:10pt;">All<b style="color:red;">R</b><b style="color:#0F0;">G</b><b style="color:blue;">B</b> entry in JS, in 719b. Rendering every RGB colour exactly once '+w+'x'+w+'px - '+(w*w)+' cols.</p>';
o.insertBefore(h,o.firstChild);