[英]Where must “use strict” be set to trigger strict-mode errors on frozen objects?
從ES5開始,我們可以使用Object.freeze()
來鎖定對象。
但是如果你在sloppy模式下運行JS,除非你激活strict-mode,否則任何對屬性的寫入都會無聲地失敗。
但是你需要在哪里設置它? 我使用模塊系統(node.js / amd),因此涉及一堆文件/范圍:
哪一個必須(繼承)'use strict'指令來觸發錯誤?
最初創建對象的范圍。
不,那沒關系。
在對象上調用Object.freeze()的范圍。
這只有在freeze
時才有意義。
嘗試更改對象屬性的范圍。
是。 [[Put]]
在評估引用為strict時拋出,引用由屬性訪問器構造,如下所示:
7.如果正在評估的語法生成包含在嚴格模式代碼中,則let strict為true,否則let strict為false。
8.返回類型為Reference的值,其基值為baseValue,其引用名稱為propertyNameString,其嚴格模式標志為strict。
全球范圍
不,你不能嚴格要求“全球范圍”。 嚴格性是程序代碼的屬性,其中最高級別的單元是“程序代碼” - 在您的情況下是模塊文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.