Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用严格模式时从JavaScript对象中删除属性_Javascript - Fatal编程技术网

如何在使用严格模式时从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阅读了文档<代码>第三,严格模式禁止删除普通名称。在严格模式下删除名称是一个语法错误:
    ,但属性不是普通名称。请参阅答案谢谢您的澄清,现在有意义了