It could be a getter/setter. You are also assuming that a null will exist in the first place which it may well not. It also isn't clear what you're implying by "If you've gone that far"
On Feb 15, 10:12 am, Angus Croll <anguscr...@gmail.com> wrote: > Michael, If you've gone that far why not just have Person have a > getZip() method to encapsulate the null checking? > > On Feb 15, 7:37 am, "Michael Haufe (TNO)" <t...@thenewobjective.com> > wrote: > > > Looks like a code smell of bad design. If you have a Person object it > > would be unnecessary to do member sniffing tests and literal > > injections like this. > > > So instead of this: > > > var person = {address: {zip: 1234}}, > > person2 = {}; > > console.log("Person2 undefined: " + > > ((person2||{}).address||{}).zip || "no zip"); > > > I'd say do this: > > > var person = new Person(new Address(1234)), > > person2 = new Person(); > > console.log(person2.zip || "no zip"); > > > On Feb 14, 5:02 pm, Sam Merrell <merrell....@gmail.com> wrote: > > > > Hi all > > > , > > > What are the groups thoughts on safely accessing a nested objects > > > value that may be undefined? I recently came across a blog post [1] > > > from Oliver Steele where he did a shortcut that looks like this: > > > > var person = {address: {zip: 1234}}, > > > person2 = {}; > > > console.log("Person2 undefined: " + > > > ((person2||{}).address||{}).zip || "no zip"); > > > > This takes the place of code like this: > > > > if(person2 && person2.address) > > > console.log("Person2 zip: " + person2.address.zip); > > > > Does the code lose readability when done with that sort of shorthand? > > > Also, is there the possibility of a performance hit for creating > > > multiple empty objects? > > > > [1]http://osteele.com/archives/2007/12/cheap-monads -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/jsmentors@jsmentors.com/ To search via a non-Google archive, visit here: http://www.mail-archive.com/jsmentors@googlegroups.com/ To unsubscribe from this group, send email to jsmentors+unsubscr...@googlegroups.com