JSFiddle - React, Tailwind, and code Playground

by acbabis

JavaScript

const lang = Object.freeze({
  person: {
    name: 'Zach',
    address: {
      line1: '123 fake st.'
    }
  }
})

const smartLang = new Proxy(lang, {
  get: function(target, prop) {
    if (target[prop]) {
      return target[prop];
    } else {
      const props = prop.split('.');
      return props.reduce((obj, prop) => obj[prop], target);
    }
  }
});

$('<div>').text(smartLang['person.name']).appendTo(document.body);
$('<div>').text(smartLang['person.address.line1']).appendTo(document.body);