敲除js中这两种编码方法有什么区别

时间:2013-11-20 11:04:45

标签: javascript knockout.js

只看两种方法并告诉我有什么区别。什么时候应该使用? 在第一种情况下将创建实例,但在第二种情况下,在ko.applyBindings()时不会创建任何实例,所以这是代码。

function MyViewModel() {
         var self = this;
         self.lastInterest = ko.observable();
         self.places = ko.observableArray(['London', 'Paris', 'Tokyo']);

         // The current item will be passed as the first parameter, so we know which place was hovered over
         self.logMouseOver = function(place) {
             self.lastInterest(place);
         }
     }
     ko.applyBindings(new MyViewModel());


var viewModel = {
        detailsEnabled: ko.observable(false),
        enableDetails: function() {
            this.detailsEnabled(true);
        },
        disableDetails: function() {
            this.detailsEnabled(false);
        }
    };
    ko.applyBindings(viewModel);

1 个答案:

答案 0 :(得分:-2)

第一个代码部分是一个函数,但第二个是基于类的模块设计模式代码,你可以在第二个代码中达到参数!

看看这个:

http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html