gpt4 book ai didi

javascript - Backbone 源代码中的多个左手分配——它是微优化吗?

转载 作者:行者123 更新时间:2023-11-30 16:32:28 25 4
gpt4 key购买 nike

在阅读 annotated Backbone source code 时,我遇到了这样的作业:

var Events = Backbone.Events = {};

我明白发生了什么:一个空对象被分配给 Backbone.Events,然后又被分配给 Events

为什么要这样写作业?

总的来说,我知道多次左手作业不是一个好主意,因为如果这样做:

var a = b = c = 1;

bc 被提升到全局命名空间,但是在 backbone 的情况下,Events 是一个局部变量,而 Backbone.Events 绑定(bind)到 Backbone 对象,所以这里没有范围污染——这是正确的吗?

那么它是不是这样写的,所以在 Events 中获取 Backbone.Events 的“副本”,因为在 JavaScript 中对象总是通过引用传递?这意味着对 Events 的更改也将应用于 Backbone.Events 因为它实际上是同一个对象,但我看不出这有什么好处,但也许我错过了一些东西这里?也许这真的只是一条捷径?

var Events = {};
var Backbone.Events = {};

编辑:上面的例子实际上是错误的,我是因为Guffa的回答才意识到这一点的。

最佳答案

是的,Events 变量将指向与 Backbone.Events 属性相同的对象。它是以下内容的缩写形式:

Backbone.Events = {};
var Events = Backbone.Events;

关于javascript - Backbone 源代码中的多个左手分配——它是微优化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134902/

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