Skip to content

Instantly share code, notes, and snippets.

@jomontanari
Created April 23, 2012 02:51
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 jomontanari/2468503 to your computer and use it in GitHub Desktop.
Save jomontanari/2468503 to your computer and use it in GitHub Desktop.
Code snippets for ThoughtWorks Team Hug presentation - comparing JavaScript and CoffeeScript (part 3)
var objectToString = function (obj) {
var key, val, _results;
_results = [];
for (key in obj) {
if (!obj.hasOwnProperty(key)) continue;
val = obj[key];
if (val !== null) _results.push(key + ":" + val);
}
return _results.join(",");
};
objectToString = (obj) ->
("#{key}:#{val}" for own key, val of obj when val isnt null).join(“,")
var Region = function(states) {
this.states = states;
};
Region.prototype.findStatesBeginningWith = function(letter) {
var matchingStates = [];
for (var i = 0;i < this.states.length; i++) {
state = this.states[i];
if (state.substr(0,1) === letter) {
matchingStates.push(state)
}
}
return matchingStates;
};
class Region
constructor: (@states) ->
findStatesBeginningWith: (letter) ->
state for state in @states when state.substr(0,1) is letter
var Clickable = function (baseElement) {
var that = this;
this.displayAlert = function() {
alert("You just clicked me!");
};
$(baseElement).click(that.displayAlert);
};
class window.Clickable
constructor: (@baseElement) ->
$(@baseElement).click(@displayAlert)
displayAlert: =>
window.alert("You just clicked me!")
var london = {
lat: 51.5171,
lng: 0.1062
};
var lat = london.lat;
var lng = london.lng;
london =
lat: 51.5171
lng: 0.1062
{lat,lng} = london
function doSomethingWithPoint(point) {
lat = point.lat;
lng = point.lng;
console.log(lat, lng);
}
doSomethingWithPoint(london);
doSomethingWithPoint = ({lat,lng}) ->
console.log(lat, lng);
doSomethingWithPoint london
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment