Javascript &引用;使用“严格”;;现在允许复制属性吗?
我刚刚发现,在最近的Chrome 42和FF 37.0.2中,这行代码是完全合法的Javascript &引用;使用“严格”;;现在允许复制属性吗?,javascript,google-chrome,firefox,strict,Javascript,Google Chrome,Firefox,Strict,我刚刚发现,在最近的Chrome 42和FF 37.0.2中,这行代码是完全合法的 "use strict"; var o = { p: 1, p: 2 }; (复制粘贴自) 在IE 10-11和Opera 28.0.1750中,它会按预期抛出错误 同时, abc=0; 按预期导致错误(未声明的变量) 有人知道是什么导致了这种变化吗?这里有一个Bugzilla。从我收集的信息(这里和我查找过的其他页面)来看,复制属性在ECMAScript版本6中是合法的,而在ES5中,在严格模式下是禁止的。
"use strict";
var o = { p: 1, p: 2 };
(复制粘贴自)
在IE 10-11和Opera 28.0.1750中,它会按预期抛出错误
同时,
abc=0;
按预期导致错误(未声明的变量)
有人知道是什么导致了这种变化吗?这里有一个Bugzilla。从我收集的信息(这里和我查找过的其他页面)来看,复制属性在ECMAScript版本6中是合法的,而在ES5中,在严格模式下是禁止的。这看起来确实是一个糟糕的设计决策。@Kaido是的,我得到了它。关键是——这还不起作用:)而且,它什么时候能起作用。。。我真的不相信这项功能是真的需要,也不能变通。另一方面,我个人遇到了属性复制的问题…@kaido No,因为
{…obj,…objPatch}
是的,在某些情况下,最好在文本对象属性列表字符串的末尾放置一个重复的“补丁”值。但这一罕见的优势不值得失去对象的美妙特性,即它们保证不存在重复的关键点。编程需要唯一键的频率远远高于非唯一键。自计算机科学诞生以来,唯一键一直是语义关联数组的一个主要方面。请参阅。密切相关: