const指定基本数据类型,不能修改。指定引用数据类型,代表的是指针,属性值可以修改。
具体可以用Object.defineProperty来实现
function myConst(obj, val) {
window.obj = val;
Object.defineProperty(window, obj, {
enumerable: false,
configurable: false,
get() {
return val
},
set(newVal) {
if (newVal !== val) {
throw new Error()
} else {
return val
}
}
})
}
//测试
myConst('a', { a: 123 })
console.log(a);
a.a = 12345
console.log(a);
myConst('b', 123)
console.log(b);
b = 23423;
console.log(b);
记录记录!