JavaScript設計模式與開發實踐一書中的問題?

時間 2021-06-09 17:49:08

1樓:盧高健

這個還是看你呼叫了幾次getSingle,example=getSingle();example2=getSingle();這樣就會有兩個result,不是乙個,建議可以好好看看閉包

2樓:niaodan2b

你的表述有點亂,我嘗試理解為:為什麼result裡既儲存了乙個div又儲存了乙個iframe,是這個意思嗎?

很簡單因為有兩個result嘛,result是getSingle函式裡面的區域性變數,區域性變數當然是每次呼叫函式都會建立啦。

div那裡呼叫了一次getSingle,iframe那裡又呼叫了一次getSingle,兩次呼叫就產生了兩個result,又因為閉包的原因,這兩個result都不能隨著getSingle的結束而銷毀,

3樓:梅雪香

你需要理解作用域,作用域鏈,閉包,才能比較透徹的理解這個問題。

打個比方說,呼叫 getSingle ,就像婚姻登記, 你可以去登記,別人也可以。

你登記以後,可以有自己的孩子,別人可以有別人的孩子,但在孩子出生以前,你們的孩子都只是乙個宣告,也就是你可以有,但還沒有,別人也可以有,但也還沒有。這個婚姻現場就相當於作用域了。

設計模式中最少知道原則與 getparent 怎麼實現?

輪子哥的例子有getParent合理,因為UI是樹狀結構。遊戲buff是單層結構,而且一般buff很有可能互相有影響,還會因為角色狀態不同又有不同影響。如果邏輯都寫在buff裡,難免不會發生每個buff要必須知道其他buff的實現的情況。更好的辦法是每個buff只保留剩餘時間之類的最基本實現,buf...

JavaScript 的語言設計有哪些缺陷?

迷途書童 Object instanceof Function true Function instanceof Object true 你中有我,我中有你,理解起來很費勁 Function.constructor Function.constructor.constructor.delete gl...

JavaScript裡怎麼區分複雜型別與原始型別

A yon obj null string number boolean symbol bigint includes typeof obj undefined 可以忽略 papa pa 原始型別不該是 string number boolean null undefined symbol bigi...