Чтобы ответить на оба ваших вопроса, настоятельно рекомендуется при использовании knockoutjs и шаблона MVVM инкапсулировать свойства и методы, относящиеся к вашим объектам, в их соответствующих моделях представления.
Тем не менее, он очень хорошо работает, чтобы иметь любые свойства (аргументы, если хотите) и методы обратного вызова, которые будут отвечать за обновление вашей модели представления (или запуск обновлений для других объектов из-за изменений в вашей модели представления), на которых они постоянно находятся сама модель вида.
Тогда внутри вашего собственного обработчика привязки вы можете просто ссылаться на любые нужные вам свойства непосредственно из вашей модели представления, а также вызывать любые функции обратного вызова, находящиеся в модели представления.
Инкапсуляция членов и поведения таким образом делает очень простым модульное тестирование каждой модели представления.