js delete 作用基础问题

如题,下面两处delete操作,作用是释放内存资源?

    initFn() {
      const formData = this.$refs.filter.getAllItem()
      formData.month = 6
      for (var i in formData) {
        if (i === 'timeStart' || i === 'timeEnd') {
          if (formData[i] !== '') {
            delete formData.month  // delete
          }
        }
        if (formData[i] === '') {
          delete formData[i]  // delete
        }
      }
      const params = {
        ...formData
      }
      this.$axios.post(this.$url, params).then(data => {
         ... ...
      }).finally(() => {
         ... ...
      })
    }
阅读 2.3k
2 个回答
const foo = {
    bar: 'bar'
}
console.log(foo)
// {bar: 'bar'}
delete foo.bar
console.log(foo)
// {}

来自 mdn 的解释

delete 操作符用于删除对象的某个属性;如果没有指向这个属性的引用,那它最终会被释放。

在你提供的代码里,因为数据要发送给后端,所以做一些多余的参数删除

这个就是根据业务逻辑删除formData对象的属性,然后把对象作为参数传给后端。

属性一旦被删除,分配给该属性对应的变量占据的内存,会被自动回收的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题