The two options to define a view model is to use object notation or a constructor function.
// object notation.
var viewModel = {name: ko.observable("Bob")}
ko.applyBindings(viewModel)
console.log(ko.toJSON(viewModel))
// contructor function.
var ViewModel = function() {
}
var viewModel = new ViewModel()
ko.applyBindings(viewModel)
console.log(ko.toJSON(viewModel))
By convention variable names of constructor functions should be like class names in e.g. Java and C#, so everyone can see, that one has to use the new keyword.
I think you just mixed the constructor function with the instantiated object.
--Benjamin