How to add new computed property in knockoutjs object at run time?
===

I have program like below in knockout js

    <input type="text" data-bind="value:firstName" />
    <input type="text" data-bind="value:lastName" />
    <p data-bind="text:fullName">
        <script type="text/javascript" language="javascript">
            // Here's my data model
            var Person = function (id, first, last) {
                this.id = ko.observable(id);
                this.firstName = ko.observable(first);
                this.lastName = ko.observable(last);
    
    
            };
    
            Person.prototype.fullName = ko.computed(function () {
                return this.firstName() + " " + this.lastName();
            }, Person);
    
    
            ko.applyBindings(Person(1, "kapil", "Garg"));
        </script>


I am getting error that this.firstName() is not a function. how can i add new computer property like that?
