jEngine: Scope 
Installation
npm install jstools-scope --save
or
bower install jstools-scope --save
Usage
var s1 = new Scope({ foo: 'bar', overlap: 'v1', obj: { value: 'pristine' } });
var s2 = s1.$$new({ overlap: 'v2' });
var s3 = s2.$$new();
s3.foo = 'changed';
s3.obj.value = 'dirty';