首页 > 解决方案 > 分配给与 MS Edge 中窗口对象的属性共享名称的变量时的行为差异

问题描述

尝试在 Microsoft Edge 中为窗口对象的属性分配值失败,这与 firefox 和 chrome 中的行为不同。

虽然在这对我来说是个问题的情况下,我只是能够更改变量的名称以将代码返回到工作状态,但这似乎不是一个长期的解决方案。

// First example
const foo = { control: 123, focus: 456, alert: 789 };
const { control, focus, alert } = foo;

console.log(control, focus, alert);

console.log(focus === window.focus);
console.log(alert === window.alert);

// Second example
const unescape = 'test';
console.log(unescape);

关于第一个例子:

第一个 console.log在 Firefox 和 chrome 中打印123, 。Edge 正确打印控件,但返回其他两个参数的函数。456789

后两个日志分别false在 Firefox 和 chrome 中打印,而true在 Edge 中打印。


关于第二个例子:

请注意,我将这个更简单的示例列在第二位,因为我只在浏览器的控制台中对其进行了测试,而我在主动运行的代码中注意到了第一个示例。

在 Firefox 和 chrome 中,该值'test'存储在unescape. 它在以下行中成功打印。

在边缘试图分配到unescape产生一个Unspecified Error.

标签: javascriptcross-browsermicrosoft-edge

解决方案


推荐阅读