如何在使用严格模式时从JavaScript对象中删除属性
阅读这个问题: 然而,我的代码使用如何在使用严格模式时从JavaScript对象中删除属性,javascript,Javascript,阅读这个问题: 然而,我的代码使用“严格使用”在全局声明中,这意味着它存在于整个文件中 delete语句在严格模式下被禁止(无效) 在使用严格模式时,如何从对象中删除属性,而不必借助克隆和在属性上循环,跳过要删除的属性 更新和澄清: 我需要先从对象中删除属性,然后再将其发送到服务器,服务器会抱怨未知属性。delete在严格模式下不被禁止 在严格模式下删除不可删除的属性会引发错误。在非严格模式下,它会无声地失败。无论哪种方式,都不可能,除非克隆对象 不能删除普通名称;抛出语法错误。如果这个变量是一
“严格使用”代码>在全局声明中,这意味着它存在于整个文件中
delete
语句在严格模式下被禁止(无效)
在使用严格模式时,如何从对象中删除属性,而不必借助克隆和在属性上循环,跳过要删除的属性
更新和澄清:
我需要先从对象中删除属性,然后再将其发送到服务器,服务器会抱怨未知属性。delete
在严格模式下不被禁止
在严格模式下删除不可删除的属性会引发错误。在非严格模式下,它会无声地失败。无论哪种方式,都不可能,除非克隆对象
不能删除普通名称;抛出语法错误。如果这个变量是一个全局变量,你可以像这样绕过它
// Imagine we're global here.
var foo = 4;
delete foo; // syntax error
delete window.foo; // works.
您的问题似乎建立在错误的前提上(即,delete
语句在严格模式下被禁止)。你到底想做什么?你到底在观察什么问题?一个小的、完整的代码示例来复制您的问题会很有帮助。这说明delete
语句在哪里被禁止或无效?@Bergi阅读了文档<代码>第三,严格模式禁止删除普通名称。在严格模式下删除名称是一个语法错误:
,但属性不是普通名称。请参阅答案谢谢您的澄清,现在有意义了