Skip to content

Instantly share code, notes, and snippets.

@eshacker
Created December 29, 2015 13:19
Show Gist options
  • Save eshacker/f27ae91e040083a83e1f to your computer and use it in GitHub Desktop.
Save eshacker/f27ae91e040083a83e1f to your computer and use it in GitHub Desktop.
Destructuring in ES 2015
// ES 2015
var DefaultPerson = {
name : { first: "John", last: "Smith"},
age: 25,
city: { hometown: "NY", current: "PA" }
};
var Person = {
name : { first: "EcmaScript", last: "Hacker"},
age: 17,
city: { hometown: "of brotherly love", current: "where them girls at" }
};
var { name: { first: Name }, age: Age, city: { current: City } } = Person;
console.log(Name);
console.log(Age);
console.log(City);
var { name: { first: Name} = { name : { first } = DefaultPerson} } = Person;
console.log(Name)
var noobj = {};
var { name: Name = DefaultPerson.name.first } = noobj;
console.log(Name);
var { name : {first : Name} } = DefaultPerson;
console.log(Name);
// Babel generated code
"use strict";
var _DefaultPerson;
var DefaultPerson = {
name: { first: "John", last: "Smith" },
age: 25,
city: { hometown: "NY", current: "PA" }
};
var Person = {
name: { first: "EcmaScript", last: "Hacker" },
age: 17,
city: { hometown: "of brotherly love", current: "where them girls at" }
};
var Name = Person.name.first;
var Age = Person.age;
var City = Person.city.current;
console.log(Name);
console.log(Age);
console.log(City);
var _Person$name = Person.name;
_Person$name = _Person$name === undefined ? { name: (_DefaultPerson = DefaultPerson, first = _DefaultPerson.first, _DefaultPerson) } : _Person$name;
var Name = _Person$name.first;
console.log(Name);
var noobj = {};
var _noobj$name = noobj.name;
var Name = _noobj$name === undefined ? DefaultPerson.name.first : _noobj$name;
console.log(Name);
var Name = DefaultPerson.name.first;
console.log(Name);
// Output
EcmaScript
17
where them girls at
EcmaScript
John
John
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment