js 深凍結 與 淺凍結 Object.freeze
阿新 • • 發佈:2018-11-05
1、深凍結
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>js 深凍結 與 淺凍結</title>
</head>
<body>
<script type="text/javascript">
function deepFreeze(o) {
var prop, propKey
Object.freeze(o) // 首先凍結第一層物件
for (propKey in o) {
prop = o[propKey]
if (!o.hasOwnProperty(propKey) || !(typeof prop === "object") || Object.isFrozen(prop)) {
// 跳過原型鏈上的屬性、基本型別和已凍結的物件.
continue
}
deepFreeze(prop) //遞迴呼叫.
}
}
</script>
</body>
</html>
2、淺凍結
Object.freeze(o)