JSFiddle - React, Tailwind, and code Playground
JavaScript
function Tree() {
var branch1;//private object
var branch2;
Object.defineProperty(this, 'branch1',
{
enumerable:true,
get:function(){
if ( !branch1 ) {
branch1 = new Tree();
}
return branch1;
},
set:function(val) {
branch1 = val;
}
}
)
Object.defineProperty(this, 'branch2',
{
enumerable:true,
get:function(){
if ( !branch2 ) {
branch2 = new Tree();
}
return branch2;
},
set:function(val) {
branch2 = val;
}
}
)
}
var tree = new Tree();
//tree.branch1 = 'hi'
tree.branch1.branch2.twig = 'yellow'
console.log( tree.branch1.branch2.twig )
tree.branch1.branch2.branch1.branch1.twig = 'green'
console.log( tree.branch1.branch2.branch1.branch1.twig )
tree.branch1.branch1.someAttribute = 'branchONE'
console.log(tree.branch1.branch1.someAttribute)