<script>
this.document = "xxxx"; // why it doesn't make sense?
console.log(document); // still show document obj in devtools
</script>
我想这可能是javascript引擎禁止的。
答案 0 :(得分:1)
window.document
不是可写属性。如果你想要一个名为document
的局部变量,你可以这样做:
(function(){
var document = 'xxxx';
console.log(document);
})();
和
new function(){
this.document = 'xxxx';
console.log(this.document);
};
两者都会记录'xxxx'
答案 1 :(得分:1)
有时它是有道理的 - 是允许的,例如你可以重新分配内在函数window.alert
。
但在99%的情况下,你最好单独留下它。
答案 2 :(得分:1)
重新分配内置的ins会产生不可移植的行为。
图书馆A严重依赖于document.getElementById。库B依赖于它自己的自定义版本,但用自己的自定义版本替换了文档原型上的getElementById。图书馆A休息。
因此,设计用于所有浏览器并针对所有浏览器进行测试的库A将无效。
它与全局变量的论点相同。内置函数基本上是全局变量。