Thi*_*ena 5 javascript mvvm viewmodel knockout.js knockout-validation
我使用Knockout.js作为富客户端应用程序,它将包含大量的knockout.js ViewModels.在开发过程中,我注意到了两种创建knockout.js ViewModels的方法.第一种方式.
function AppViewModel() {
this.firstName = ko.observable("Bert");
this.lastName = ko.observable("Bertington");}
Run Code Online (Sandbox Code Playgroud)
第二种方式.
var appViewModel = {
this.firstName = ko.observable("Bert"),
this.lastName = ko.observable("Bertington")};
Run Code Online (Sandbox Code Playgroud)
这两种声明ViewModels的方法有什么特别的区别吗?在knockout.js官方页面示例中,他们使用了第一种方式.但在第三方框架中,如Knockout-validations.js已采用第二种方式.我应该使用哪种方式?使用它有什么特别的优势吗?
我发现如果我使用第一种方式,那么我不能使用Knockout-validations.js框架.我真的很困惑这个问题.任何评论表示赞赏.
谢谢.
小智 3
第一种方式定义了一个对象构造函数,但不实例化一个新对象,您可以通过这种方式传入参数。如果您要创建多个对象/模型,这肯定不会比第二种方式笨重。
第二种方法是使用对象初始值设定项语法,这会使用您设置的任何字段在内存中实例化一个新对象。一般来说,这会产生较小的代码大小;如果您要创建两个结构相同或相似的对象,请使用第一种方法。
您没有理由不能使用第一个来代替第二个。只需创建一个新对象并将其传递到需要的地方即可。
这:
function AppViewModel(fName, lName) {
var self = this;
self.firstName = ko.observable(fName);
self.lastName = ko.observable(lName);
}
...
var appViewModel = new AppViewModel("Bert", "Bertington");
Run Code Online (Sandbox Code Playgroud)
创建与此相同的对象:
var appViewModel = {
this.firstName = ko.observable("Bert"),
this.lastName = ko.observable("Bertington")
};
Run Code Online (Sandbox Code Playgroud)
第一个只允许AppViewModel创建更多 s,例如new AppViewModel("Joe", "Shmoe")
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |