2
A
回答
2
沒有什麼可以添加或設置一個frozen 對象的屬性中刪除。任何試圖這樣做的嘗試都將失敗,無論是默默地或通過拋出TypeError異常(當在 嚴格模式下時,最常見但不排除) 。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze
你可以考慮一下這樣的:
if(typeof ChuckNorris === 'undefined') {
ChuckNorris = Object.create([Infinity], {
canCountTo: {
value: Infinity * 2,
writable: true,
configurable: true
}
});
Object.freeze(ChuckNorris); // nothing can harm Chuck anymore !
}
console.log(ChuckNorris.canCountTo); // Infinity
delete ChuckNorris.canCountTo;
console.log(ChuckNorris.canCountTo); // Infinity
所以基本上,freeze
將創建之後設置的對象writable
和configurable
標誌爲false。
1
不,Object.freeze
的想法是你不能再改變它了。根據documentation:
本質上,該對象是有效的不可變的。
和:
沒有什麼可以被添加到或從設置凍結對象的屬性中移除。任何試圖這樣做會失敗,...
+0
所以基本上我可以用它來使事情「私人」? –
+0
@Mike Shinola:這取決於你如何定義「私人」。它的值不能改變,但仍然可以讀取。 – pimvdb
相關問題
- 1. 種子洗牌可以顛倒嗎?
- 2. jQuery顛倒效果的方向
- 3. 是否可以顛倒e.preventDefault()?
- 4. 是否可以顛倒UIModalTransitionStyleCoverVertical?
- 5. ls()中的模式參數可以顛倒嗎?
- 6. 顛倒mkimage的效果以獲得原始gzip文件
- 7. 我可以顛倒多播委託事件的順序嗎?
- 8. 如何顛倒MySQL結果
- 9. 顛倒MySQL結果php
- 10. 是否可以顛倒上下文菜單項或顛倒排序
- 11. 列中的值以顛倒的順序
- 12. 可以在CakePHP中使用「語義顛倒」關聯,比如Message blongsTo Attachment嗎?
- 13. 如何顛倒jQuery UI摺疊效果的方向?
- 14. 在Ruby中哈希顛倒?
- 15. 鍵盤在UIViewController中顛倒
- 16. MySQL顯示顛倒順序的結果?
- 17. 顛倒顛倒python中的星號三角形
- 18. 是否可以顛倒Java類中的所有布爾值?
- 19. 是否可以在選擇後顛倒msyqli_query的順序?
- 20. 更改循環結果以顛倒順序在JavaScript/Jquery
- 21. 顛倒python中的循環?
- 22. 顛倒OCaml中的int
- 23. PDF顛倒
- 24. 顛倒ObservableCollection
- 25. Hubtile.Title顛倒
- 26. 顛倒鏈表
- 27. 顛倒Floyd-Warshall
- 28. 顛倒鏈表?
- 29. 顛倒的文字
- 30. 可能會顛倒ItemGroup元素的順序嗎?
現在您可以將這些標誌設置爲true了嗎? –
不要誤解我的意思我喜歡這樣:P,但是用JavaScript你永遠不能確定......如果對象可以再次變爲可變的,我不想依賴這個特性。 –
除非有一些我不知道的hackery(不太可能:p),否則當JS引擎原生支持它時,沒有辦法修改凍結對象屬性。 – jAndy