V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ghostgril
V2EX  ›  前端开发

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

  •  
  •   ghostgril · 2018-03-20 22:45:59 +08:00 · 1592 次点击
    这是一个创建于 2446 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    另外从强类型语言来看,就不存在 delete 这种操作。到后面接入 flow 或者 typescript,delete 肯定是严禁的
    Torpedo
        3
    Torpedo  
       2018-03-25 15:32:10 +08:00 via Android
    原来引擎没有优化,用 delete 影响性能。
    新的 v8 引擎优化了这点。一般 node8 就没什么性能问题了。
    但是浏览器端,就不一定了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:41 · PVG 11:41 · LAX 19:41 · JFK 22:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.