我想问一下这两个应用绑定的区别 在我的代码上我改变很多,因为我使用数字2.请定义。感谢。
首先
var viewModel = function ()
{
...
...
}
var VM = new viewModel();
$(function() {
ko.applybinding(VM)
})
OR
var viewModel = function ()
{
...
...
}
$(function() {
var VM = viewModel();
ko.applybinding(VM)
})
答案 0 :(得分:3)
这取决于viewModel
是作为“经典”构造函数实现的,需要使用new
实例化,还是作为显式返回对象的“工厂”。
经典构造函数的示例:
function ViewModel() {
var self=this;
self.property=ko.observable();
self.list=ko.observableArray();
}
请注意,标准JavaScript约定是以大写字母开始经典构造函数的名称。
工厂/功能构造函数的示例:
function viewModel() {
var self={};
self.property=ko.observable();
self.list=ko.observableArray();
return self;
}
在大多数情况下,只需要个人选择即可使用。我建议阅读Douglas Crockford的 JavaScript:The Good Parts 中关于对象和继承的章节,以掌握细微差别。如果您正在创建继承层次结构或使用instanceof
执行大量运行时类型推断,那么“经典”方法可能会更好;如果你使用函数式编程风格,那么“工厂”方法可能会更好,因为你可以简单地将工厂作为回调传递,而不必一直包装它。