Javascript 为什么没有';将其他对象指定给内置对象(如文档、窗口)没有意义吗? 此文件为“=”xxxx“//为什么没有意义? console.log(文档);//仍然在devtools中显示文档对象

Javascript 为什么没有';将其他对象指定给内置对象(如文档、窗口)没有意义吗? 此文件为“=”xxxx“//为什么没有意义? console.log(文档);//仍然在devtools中显示文档对象,javascript,Javascript,我想这可能会被javascript引擎禁止。窗口。文档不是可写属性。如果需要名为document的局部变量,可以执行以下操作: <script> this.document = "xxxx"; // why it doesn't make sense? console.log(document); // still show document obj in devtools </script> 以及: 两者都将记录“xxxx”窗口。文档不是可写属性。如果需要名为d

我想这可能会被javascript引擎禁止。

窗口。文档
不是可写属性。如果需要名为
document
的局部变量,可以执行以下操作:

<script>
this.document = "xxxx";  // why it doesn't make sense?
console.log(document);   // still show document obj in devtools
</script>
以及:


两者都将记录“xxxx”窗口。文档不是可写属性。如果需要名为
document
的局部变量,可以执行以下操作:

<script>
this.document = "xxxx";  // why it doesn't make sense?
console.log(document);   // still show document obj in devtools
</script>
以及:


两者都将记录“xxxx”

有时这是有意义的-并且是允许的,例如,您可以重新分配intristic函数
窗口。警报


但在99%的情况下,你最好不要去管它。

有时它是有意义的,而且是允许的,例如,你可以重新分配intristic函数
window.alert


但是,在99%的情况下,最好不要管它。

重新分配内置会产生不可移植的行为

库A严重依赖document.getElementById。库B依赖于它自己的自定义版本,但将文档原型上的getElementById替换为它自己的自定义版本。图书馆休息

因此,设计用于所有浏览器并针对所有浏览器进行测试的库A将无法工作


这与全局变量的参数相同。内置基本上是全局变量。

重新分配内置会产生不可移植的行为

库A严重依赖document.getElementById。库B依赖于它自己的自定义版本,但将文档原型上的getElementById替换为它自己的自定义版本。图书馆休息

因此,设计用于所有浏览器并针对所有浏览器进行测试的库A将无法工作

这与全局变量的参数相同。内置基本上是全局变量

new function(){
  this.document = 'xxxx';
  console.log(this.document);
};