图像您有一个名为 的全局变量。如果要存储在其中的新值不符合某些条件,是否可以阻止任何人更改其类型和值?window.whatever
例如,如果我的变量不以“https://”开头,我不希望更改它。
在这种情况下,会抛出一个错误,但工作正常。window.whatever = "Hello"window.whatever = 15window.whatever = "https://example.com/"
也许会解决它,但我不知道如何。Object.defineProperty
Object.defineProperty(window, 'whatever', {
writable: true, //here I want to add a sort of condition
});
我试过这个:
Object.defineProperty(window,'whatever',{
set:function(x){
if (x.startsWith('https://')) this.whatever= x}
})
但是当我这样做时,它说:它仍然是未定义的window.whatever = "https://example.com"Uncaught RangeError: Maximum call stack size exceeded
心有法竹
浮云间
随时随地看视频慕课网APP
相关分类