巧用闭包

82 阅读1分钟

前提摘要

有个列表,需要在其中的按钮绑定事件,弹出一个弹框提示,点击确定后对当前项的数据进行处理操作。

palnA

    data(){
        return {
            data:{} //报存变量
        }
    }
  showAlert(item) {
      this.data = item;
      this.dialogVisiabled = true;
    },
    //确认方法
    confirm(){
        console.log(this.data) // 对数据进行操作
    }

这是常规思路,但是需要创建一个变量去存储值。下面是闭包的方法。

planB

 showAlert(item) {
      this.dialogVisiabled = true;
      this.confirm = () => {
         console.log(item) 
      };
      return this.confirm;
    },

对比来看,代码量少了很多,而且不用创建变量去存,因为页面中变量过多,也会造成维护力下降。 闭包的原理不再多说,两种方法孰优孰劣也不讲,只是提供一种解决思路,希望大家多多讨论。