Arrow functions in javascript
CoffeeScript is influencing javascript with fat arrows! As python had influenced it before with list comprehensions.
Well, the grammer looks like :
AssignmentExpression :
    ArrowFunctionExpression
    ...
ArrowFunctionExpression :
    ArrowFormalParameters => [lookahead ∉ { "{" }] AssignmentExpression
    ArrowFormalParameters => Block
ArrowFormalParameters :
    ( FormalParameterList_opt )
    Identifier
Grammer in simple English :
- => works as a function keyword. 
- (Parameters) are placed before the =>. 
- {} are needed for the function body if there are more than one line or else it's optional. 
- For one liners an explicit return is not needed, for others it's needed. 
Some examples from the proposal :
// Empty arrow function returns undefined let empty = () => {}; // Single parameter case needs no parentheses around parameter list let identity = x => x; // No need for parentheses even for lower-precedence expression body let square = x => x * x; // Parenthesize the body to return an object literal expression let key_maker = val => ({key: val}); // Statement body needs braces, must use 'return' explicitly if not void let odds = evens.map(v => v + 1); let fives = []; nats.forEach(v => { if (v % 5 === 0) fives.push(v); }); // ''=>'' has only lexical ''this'', no dynamic ''this'' const obj = { method: function () { return () => this; } }; assert(obj.method()() === obj); let fake = {steal: obj.method()}; assert(fake.steal() === obj); // But ''function'' still has dynamic ''this'' of course let real = {borrow: obj.method}; assert(real.borrow()() === real);
Do read arrow function syntax simplified on the ES discussion list!
Making is more easier :
var sum = function(a,b){return a+b;}
Can be re-written with fat arrows as :
let sum = (a,b) => return a+b;
Ok, it's time for me to let sleep = dream => 'zzz' + 'zzzz...'; ;) [ Yes dream is lost! ]
 
		
		    Recent blog posts
- watir-webdriver web inspector
- gem list to gemfile
- Packing ruby2.0 on debian.
- Made it into The Guinness Book!
- to_h in ruby 2.0
- Filter elements by pattern jQuery.
- Better HTML password fields for mobile ?
- Grayscale image when user offline
- nth-child CSS pseudo-class Christmas colors
- EventEmitter in nodejs