gpt4 book ai didi

javascript - 事件 - eventsApi() 的主要目的?

转载 作者:行者123 更新时间:2023-11-30 05:50:07 26 4
gpt4 key购买 nike

从概念上讲,eventsApi() 做了什么?这是私有(private)的 Backbone但用于 4 个公共(public)事件方法 - on()once()off()trigger().

在每一个中,如果它返回一个非真值,调用它的方法将“提前”退出。

它做的一件事是确定调用方法的第二部分是否会执行。如果 name 不是真值或不是复杂类型(对象或空格分隔的字符串),它将返回 true 以允许运行该方法的第二部分。

从概念上讲,eventsApi 函数的主要目的是什么,因为我试图描述它在功能上/逻辑上的作用?

事件API

  var eventsApi = function(obj, action, name, rest) {
if (!name) return true;
if (typeof name === 'object') {
for (var key in name) {
obj[action].apply(obj, [key, name[key]].concat(rest));
}
} else if (eventSplitter.test(name)) {
var names = name.split(eventSplitter);
for (var i = 0, l = names.length; i < l; i++) {
obj[action].apply(obj, [names[i]].concat(rest));
}
} else {
return true;
}
};

最佳答案

在评论点赞source说,它实现了事件 API 的更奇特的用途。

// Implement fancy features of the Events API such as multiple event
// names `"change blur"` and jQuery-style event maps `{change: action}`
// in terms of the existing API.

因此,当您将事件 API 与事件映射一起使用时:

book.on({
"change:title": titleView.update,
"change:author": authorPane.update,
"destroy": bookView.remove
});

eventsApi 函数检测到输入是一个对象,并为传入的每个属性再次调用 on

它处理的另一种情况是空格分隔的事件:

book.on("change:title change:author", ...);

在这种情况下,eventsApi 函数检测到这种情况,并再次为传入的每个事件调用一次 on

关于javascript - 事件 - eventsApi() 的主要目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com