3 ms·
Amazing? make an object: in ESx: var myObject= { a: { b: { c: { d: 'some value' } } } }; in Coffeescript or Livescript:
by uranian 10y ago
Amazing?
make an object:
in ESx:
var myObject= {
a: {
b: {
c: {
d: 'some value'
}
}
}
};
in Coffeescript or Livescript:
myObject= a: b: c: d: 'some value'
now use it:
in ESx:
console.log myObject.b.c.d // crash, myObject.b does not exist
how to prevent?
if ( myObject.hasOwnProperty('b') and myObject.b.hasOwnProperty('c') ){
console.log myObject.b.c.d // undefined
}
in Coffeescript or Livescript:
console.log myObject.b?.c?.d // undefined
I can write almost a book with too many of such examples. So, NO it's not an amazing language, I wrote for many years in it and it sucks all the way.
- Macha 9y agoIt's cheating a bit to indent the JS option only. I don't think: myObject= a: b: c: d: 'some value' Is really _that_ much of an improvement over: myObject = {a: { b: { c: { d: 'some value' } } } } especially combined with an editor that will match those closing brackets for you. And the reality is that if you have object literals that deep, chances are the inner values will also be large enough to justify expanding it anyway. Also lodash plugs a large number of holes in the standard functionality. In most projects I work at, I'd write something like: _.get(myObject, 'b.c.d') for your second example.