下面的两个方法都在 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/