如何在使用严格模式时从JavaScript对象中删除属性

cod*_*nja 2 javascript

阅读此问题:如何从JavaScript对象中删除属性?

但是我的代码'use strict';在全局声明中使用,这意味着它存在于整个文件中.

delete语句在严格模式下被禁止(无效).文档

如何在使用严格模式时从对象中删除属性,而不必诉诸克隆和循环属性,跳过要删除的属性?

更新和澄清:

我需要在将对象发送到服务器之前从对象中删除该属性,该服务器会抱怨未知属性.

Mat*_*att 5

delete严格禁止的模式.

  1. 在严格模式下删除不可删除的属性会引发错误.在非严格模式下,它会无声地失败.无论哪种方式,除了克隆对象外都不可能.

  2. 你不能删除普通名称; 抛出语法错误.如果变量是一个全局变量,你可以像这样绕过它;

    // Imagine we're global here.
    var foo = 4;
    
    delete foo; // syntax error
    delete window.foo; // works.
    
    Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的澄清,现在有道理 (2认同)