javascript - 事件特定方法在 Backbone.js 中悬而未决?

标签 javascript backbone.js

下面的两个方法都在 backbone.js 的顶级范围内。然而它们仅在 Backbone.Events 中使用。

为什么它们不像其他方法那样作为属性包含在传递给 Backbone.Events 的对象文字中?

这是为了保持它们的私密性并且不让用户使用 API 吗?

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

最佳答案

Was this to keep them private and out of the user 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 函数未公开公开。

关于javascript - 事件特定方法在 Backbone.js 中悬而未决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14678912/

相关文章:

javascript - 为什么这个字符串没有通过测试功能?

javascript - 如果我直接从 url 栏访问链接,$stateprovider 会抛出 404

javascript - 如何编写javascript来组合多个过滤器

JavaScript 状态到函数序列处理(mvc,依赖函数)

backbone.js - 将 Coffeescript Underscore.js 和 Backbone.js 放在一起

javascript - 除了通过 "this"之外,还可以从原型(prototype)函数内部访问实例吗?

javascript - 使用 Google Maps API V3 触发多边形鼠标悬停时外部 div 的事件(图像淡入)

javascript - 使用RequireJS : should I define inherited resources

backbone.js - 在backbone.js中渲染 Collection View

javascript - 在 Marionette 中将多个 View 附加到某个区域的优雅方式