特定于事件的方法在Backbone.js中处于悬空状态

Event specific methods are left dangling in Backbone.js?

本文关键字:js Backbone 状态 于悬空 方法 于事件 事件      更新时间:2023-09-26

下面的两个方法在backbone.js的顶部范围内。但是它们只在backbone.Events.中使用

为什么它们没有作为属性包含在传递给Backbone的对象文字中。像其他方法一样的事件是?

这是为了让他们保持隐私,不被用户API使用吗?

// only used in Backbone.Events
eventsApi = function(obj, action, name, rest) {
    // internals
};
// only used in Backbone.Events
triggerEvents = function(events, args) {
    // internals
};

这是为了让他们保持隐私,不被用户API使用吗?

我会答应的。这是一个暴露的模块模式。

var myModule = (function() {
  var privateFn = function() { ... };
  return {
    publicFn: function() {
      return privateFn();
    }
  };
}());

或者通过主干网使用术语:

(function(){
  // other backbone code
  var eventsApi = function() { ... };
  var Events = Backbone.Events = {
    on: function() {
      // code...
      var whatever = eventsApi(some, args);
      // code...
    }
  };
  // other backbone code
}());

现在Events.Backbone.on是一个可以调用函数eventsApi的函数,即使eventsApi函数没有公开。