因此,在 Backbone.js 中,当我们转到触发器和事件时,假设
this.trigger("do:something")
如果没有侦听器,显然没有抛出错误,但是有副作用吗?2否则我需要将其 Package 在条件中。
prdp8dxp1#
Backbone在.trigger调用中确实运行了一些代码。如果你感兴趣的话,你可以通过查看源代码来了解发生了什么:https://github.com/jashkenas/backbone/blob/master/backbone.js如果对象没有定义事件,代码可能相当于一个有条件的早期返回。或者,如果添加了任何侦听器,它可能涉及对可能的回调数组的迭代。如果你有一个简单的检查条件,那么它可能会比调用一个空的.trigger运行得更快,尽管差别肯定不会很明显。如果你的条件使你的代码很难看,或者是基于另一个 Backbone.js 库方法,我会跳过它。
.trigger
6gpjuf902#
没有副作用,但有这样的功能,并考虑到有很多可以导致减缓应用程序。
2条答案
按热度按时间prdp8dxp1#
Backbone在
.trigger
调用中确实运行了一些代码。如果你感兴趣的话,你可以通过查看源代码来了解发生了什么:https://github.com/jashkenas/backbone/blob/master/backbone.js如果对象没有定义事件,代码可能相当于一个有条件的早期返回。或者,如果添加了任何侦听器,它可能涉及对可能的回调数组的迭代。
如果你有一个简单的检查条件,那么它可能会比调用一个空的
.trigger
运行得更快,尽管差别肯定不会很明显。如果你的条件使你的代码很难看,或者是基于另一个 Backbone.js 库方法,我会跳过它。
6gpjuf902#
没有副作用,但有这样的功能,并考虑到有很多可以导致减缓应用程序。