我遇到了需要保護存儲在類的實例中的屬性的情況。我希望只有我的類可以獲取/設置某個實例的某些屬性 - 所以我的解決方案是爲這個類創建一個工廠函數,並且在這個工廠內部存儲一個存儲每個實例的數據的數組。使用私有數據的類(JavaScript)
所以我有這樣的,例如:
之所以instanceData
是一個數組是因爲每個屬性的關鍵投射到字符串,所以我把數組裏面就有,包含的對象該實例作爲第一個元素幷包含該實例的數據作爲第二個元素。
當我想要訪問實例的數據時,我只需要搜索instanceData
內部有array[0] === instance
的數組。
我的例子可以正常工作,但垃圾收集器呢?如果instanceData
會保存它們,那麼這些實例如何被垃圾收集?