V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ghostgril

js 的对象删除属性使用 delete 操作符会有哪些问题?

  •  
  •   ghostgril · Mar 20, 2018 · 1927 views
    This topic created in 2965 days ago, the information mentioned may be changed or developed.

    我们组长不允许使用 delete 操作符,但是我看有些项目都是使用 delete 操作符,就想了解一下 delete 操作符的使用。

    3 replies    2018-03-25 15:32:10 +08:00
    VDimos
        1
    VDimos  
       Mar 20, 2018 via Android
    别在 vue 这些使用了 defineProperty 的框架里使用 delete 就行了,并没有什么大的危害
    noe132
        2
    noe132  
       Mar 21, 2018 via Android
    一般来说,尽量不要修改已经存在的对象。1 是 v8 内部存在隐藏类,会对对象进行优化,2 是修改已有对象会让逻辑很不清晰。
    一般来说,如果要修改一个对象,最好的方式是重新创建一个新的。

    另外从强类型语言来看,就不存在 delete 这种操作。到后面接入 flow 或者 typescript,delete 肯定是严禁的
    Torpedo
        3
    Torpedo  
       Mar 25, 2018 via Android
    原来引擎没有优化,用 delete 影响性能。
    新的 v8 引擎优化了这点。一般 node8 就没什么性能问题了。
    但是浏览器端,就不一定了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2482 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 12:03 · PVG 20:03 · LAX 05:03 · JFK 08:03
    ♥ Do have faith in what you're doing.