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

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

  •  
  •   ghostgril · Mar 20, 2018 · 1923 views
  •   You need to sign in to view this topic
    This topic created in 2964 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   ·   2347 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 04:56 · PVG 12:56 · LAX 21:56 · JFK 00:56
    ♥ Do have faith in what you're doing.