JSFiddle - React, Tailwind, and code Playground

by Proger

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://squizzle.me/js/sqimitive/sqimitive.min.js"></script>

CSS

pre { white-space: pre-wrap; }

JavaScript

var MyBase = Sqimitive.Sqimitive.extend({
  _opt: {
    base: 123,
    base2: 'kept',
    complex: {a: 1},
  },
})

var MyChild = MyBase.extend({
  _opt: {
    // Заменит 123.
    base: 'replaced',
    // Целиком заменит {a: 1} - объекты объединяются только на первом уровне.
    complex: {b: 2},
    // Добавит новый ключ в _opt.
    child: 'new',
    // base2 - останется.
    //base2: 'kept',
  },
})

$('<pre>').text(JSON.stringify((new MyChild).get()).replace(/,/g, ', ')).appendTo('body')