同時通過annotated Backbone source code讀書,我遇到了這樣一個任務:骨幹源中的多個左側分配 - 它是一種微型優化嗎?
var Events = Backbone.Events = {};
我明白髮生了什麼:一個空的對象被分配到Backbone.Events
,然後將其分配給Events
。
作業的寫法是什麼原因?
總的來說,我知道,多左手分配是一個糟糕的主意,因爲如果這樣做是這樣的:
var a = b = c = 1;
b
和c
被提升到全局命名空間,但在骨幹網的情況下,Events
是局部變量和Backbone.Events
被綁定到Backbone
對象,所以這裏沒有範圍污染 - 這是正確的嗎?
那麼它是這樣寫的,因此在Events
中獲得Backbone.Events
的「副本」,因爲對象總是通過JavaScript中的引用傳遞的?這意味着對Events
的更改也適用於Backbone.Events
,因爲它實際上是同一個對象,但我在此看不到任何優勢,但也許我錯過了某些內容?也許這只是一個很簡單的方法呢?
var Events = {};
var Backbone.Events = {};
編輯:上面的例子其實是錯誤的,我剛剛意識到這是因爲Guffa的回答。
「...因爲對象總是通過JavaScript引用傳遞的。」。是。作者還定義了一個'Events'對象,以便源代碼變得更清晰。 – undefined
@Vohuman用更乾淨的你意味着你只需鍵入'Events'而不是'Backbone.Events'? – Sven
是的。是好還是壞?答案是「主要基於意見」。 – undefined