Object.defineProperty(window, "customVideo", {
value: {
ovaURL: "can-not-change",
pvaURL: "can-not-change"
}
});
Object.freeze(window.customVideo.ovaURL);
Object.freeze(window.customVideo.pvaURL);
//but when i run:
customVideo['ovaURL'] = "i-can-change-you-huhhuh";
customVideo['pvaURL'] = "i-can-change-you-huhhuh";
//and console.log
console.log(customVideo.ovaURL);
//so result is : "i-can-change-you-huhhuh"
//not what i want is "can-not-change"
我已经使用freeze
函数阻止用户更改window.customVideo.ovaURL
的值,可能他们此时没有工作,或者我在这里误解了一些东西。 :((
但是当freeze
用于customVideo
之后Object.freeze(window.customVideo);
他会冻结customVideo
太好了,但他不允许我将customVideo.newProp = 2
添加到customVideo
。
我只想冻结customVideo
ovaURL and pvaURL
的两个属性,我该怎么办?
为什么我需要这个?
我正在编写chrome扩展,我需要设置默认并冻结变量,将来,他的名字将由目标页面的脚本创建。这项工作将允许我在加载到用户可见时更好地控制页面。