摘要:注意一旦把對象定義為防篡改,就無法撤銷了。使用阻止對象擴展注意嚴格模式下,不是而是報錯。使用凍結對象對于庫作者而言,凍結對象可防止有人修改庫的核心對象。
前言:
去年7月份在簡書寫的,發現后端、React中也有體現,覺得有必要在微信上分享下。
注意:一旦把對象定義為防篡改,就無法撤銷了。
1.不可擴展對象
擴展指可以給對象添加屬性和方法。
使用Object.preventExtensions(object)阻止對象擴展
let a={name:"chen"} Object.preventExtensions(a) a.age=18 console.log(a.age) //undefined delete a.name console.log(a) //{}
注意:
(1)嚴格模式下,不是undefined而是報錯。
(2)可以刪除或修改已有對象屬性,但不可添加新屬性
使用Object.isExtensible(object) 判斷對象是否可擴展
console.log(Object.isExtensible(a)) //false
2.密封的對象(sealed object)
注意:
(1)被密封的對象不可擴展,因此可用Object.isExtensible(object)來判斷
(2)可以修改,不可刪除已有屬性,不可添加新屬性
Object.seal(a) a.age=20 delete a.name console.log(a.name) //chen a.name="ch" console.log(a.name) //ch
使用Object.isSealed(object)判斷是否密封
3.凍結的對象(frozen object)
凍結的對象是最嚴格的防篡改級別,既不可擴展,也是密封的,不可修改屬性。
使用Object.freeze(object)凍結對象
對于JS庫作者而言,凍結對象可防止有人修改庫的核心對象。
(完)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105616.html
摘要:一語法轉換到語法從轉換到會用到,所以先熟悉下到的轉換。對于庫作者而言,凍結對象可防止有人修改庫的核心對象。 showImg(https://segmentfault.com/img/remote/1460000019757204); 一、JSX語法轉換到Js語法從 JSX 轉換到 JS 會用到React.createElement(),所以先熟悉下 JSX 到 JS 的轉換。 這邊是 ...
摘要:但同時由于比特幣交易確認后無法更改,也從另一個方面導致買家付了款而賣家據不發貨的漏洞。明白了這個原理,我們來看如何將比特幣從一個人發給另一個人。 摘要 首先中本聰在摘要中就指明了要建立的是一個去中心化的p2p支付系統,并且不引入第三方來解決雙重支付(double-spending)問題。并且提出了解決方案思路,提及時間戳(Timestamps)、工作量證明(Proof-of-Work)...
摘要:項目黃皮書一經發布,區塊鏈垂直媒體星球日報就對這本書作了專題式的解讀。在接受星球日報采訪中,開發者們表示,擔心節點集中化帶來的安全風險。本文,星球日報將通過解讀黃皮書,解答開發者關心的問題。 showImg(https://segmentfault.com/img/bVbt2EX?w=800&h=534); 由ETM科學院歷時半年打磨的黃皮書,從科學和技術兩方面全方位解讀了ETM的理論...
摘要:項目黃皮書一經發布,區塊鏈垂直媒體星球日報就對這本書作了專題式的解讀。在接受星球日報采訪中,開發者們表示,擔心節點集中化帶來的安全風險。本文,星球日報將通過解讀黃皮書,解答開發者關心的問題。 showImg(https://segmentfault.com/img/bVbt2EX?w=800&h=534); 由ETM科學院歷時半年打磨的黃皮書,從科學和技術兩方面全方位解讀了ETM的理論...
閱讀 2915·2021-11-24 09:38
閱讀 3524·2021-11-23 09:51
閱讀 996·2021-09-09 11:52
閱讀 4044·2021-08-11 11:18
閱讀 1122·2019-08-30 14:05
閱讀 3238·2019-08-30 11:23
閱讀 1775·2019-08-29 17:02
閱讀 1138·2019-08-26 13:49