KO inheritance testing

by whelkaholism

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.2/moment.min.js"></script>
<div data-bind="text: Hello"></div>
<div data-bind="text: Goodbye"></div>
<div data-bind="text: Test"></div>
<hr/>
<div id="e"></div>

JavaScript

function Model(data, mapping)
{
    var _this = this;
    var _mapping = $.extend({}, {}, mapping);
    
    if(data)
        ko.mapping.fromJS(data, _mapping, _this);
    
    this.Hello = ko.observable('Hello');
}

function SubModel(data, mapping)
{
    var _this = this;
    
    this.Goodbye = ko.observable('Goodbye');
    
    this.Test = ko.computed(
        function()
        {
            return _this.Hello() + ', ' + _this.Goodbye();        
        }
    );
}

SubModel.prototype = new Model;

var model = new SubModel();
ko.applyBindings(model);