avo*_*avo 3 javascript ecmascript-6 es6-class
我想在创建JavaScript对象后立即对其进行密封:
'use strict';
class Test {
}
const t = Object.seal(new Test());
t.p = true; // error!
Run Code Online (Sandbox Code Playgroud)
有没有办法自动执行此操作,如下所示?
Test.sealInstances = true // I wish sealInstances was real!
const t = new Test();
t.p = true; // error
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做:
function createTest() {
return Object.seal(new Test())
}
Run Code Online (Sandbox Code Playgroud)
并createTest在所有地方使用,但我希望new Test()语法更多。
只需放入Object.seal构造函数即可:
'use strict';
class Test {
constructor() {
Object.seal(this);
}
}
const t1 = new Test();
const t2 = new Test();
try {
t1.p = 'p';
} catch(e) { console.log(e.message) }
try {
t2.z = 'z';
} catch(e) { console.log(e.message) }Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |