JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.0.0.js"></script>
<input type="text" data-bind="value: text1" />
<button data-bind="click: text1.reset">Reset</button>
<br />

<input type="text" data-bind="value: text2" />
<button data-bind="click: text2.reset">Reset</button>
<br />

<button data-bind="click: resetAll">Reset All</button>

JavaScript

ko.extenders.reset = function(target) {
    var initialValue = target();
    
    target.reset = function(){           
       target(initialValue);
   }
        
   return target;
}

function createViewModel(){
    var self = {};
    
    self.text1 = ko.observable('foo').extend({ reset: true });
    self.text2 = ko.observable('bar').extend({ reset: true });
    
    self.resetAll = function(){
        for (key in self){              
            if (ko.isObservable(self[key]) && typeof self[key].reset == 'function'){
                self[key].reset()               
            }
        }
    }
        
    return self;
}


var viewModel = createViewModel();
ko.applyBindings(viewModel);