JSFiddle - React, Tailwind, and code Playground

by Alexey Valikov

JavaScript

var Address = function () {};
var PurchaseOrder = function() {
    var _shipTo;
    Object.defineProperty(this, "shipTo", { get: function () { return _shipTo||new Address(); } });
};
var Data = function() {
    var _purchaseOrder;
    Object.defineProperty(this, "purchaseOrder", { get: function () { return _purchaseOrder||new PurchaseOrder(); } });
};



var data = new Data();
// data actual does not contain any data, it's all mimicked on access
// This returns undefined (as desired)
console.log(data.purchaseOrder.shipTo.zip);
// But this is not undefined (not as desired)
console.log(data.purchaseOrder.shipTo);