说我有这种结构:
File1.js:
var myObject = {
bindEvents: function() {
console.log('Root events binding');
}
}
键盘-object.js:
myObject.bindEvents: function() {
console.log('Keyboard events binding');
}
小鼠-object.js:
myObject.bindEvents: function() {
// extends original bindEvents and adds more functionality
// right now this behavior overrides the original bindEvents method
console.log('Mouse events binding');
}
如何触发myObject.bindEvents()
并确保在每个文件中触发它?
我的目的是将一个大对象拆分为单独的文件,并创建一个方法来触发每个文件中的所有相应方法,如bindEvents
中应该触发bindEvents
(或{{1在我的情况下)在对象
答案 0 :(得分:0)
您基本上是在这里的对象的自定义事件处理程序之后。我会看一下Backbone.js提供的那个。
答案 1 :(得分:0)
要知道您没有使用所描述的语法(如在)中为(先前声明的)myObject
属性分配匿名函数:
myObject.bindEvents: function() {
console.log('Keyboard events binding');
}
你在这里做的实际上是标记匿名函数,单词“myObject.bindEvents”对你没有任何帮助。
我认为 - 除了这个错误 - 你正试图做这样的事情:
myObject.bindEvents = function() {
console.log('Keyboard events binding');
}
现在只有你的myObject有一个bindEvents
的属性方法,你可以通过简单地声明来调用它:
myObject.bindEvents();
。
答案 2 :(得分:0)
好吧我最终决定通过触发document
上设置的事件来使用两个(或更多)单独的对象和触发器方法。
所以我目前的解决方案是:
<强> myObject.js 强>
var myObject = {
bindEvents: function() {
// some code here
$(document).trigger('myObject:bindEvents');
}
}
<强> secondObject.js 强>
var secondObject = {
bindEvents: function() {
// separate code and logic here
}
}
$(document).on('myObject:bindEvents',function(){
secondObject.bindEvents();
});
这使我可以灵活地添加更多单独的对象,并将其方法绑定到myObject
对象触发的事件。