vue-draggle源码中的策略模式和柯里化

Posted ttblog5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-draggle源码中的策略模式和柯里化相关的知识,希望对你有一定的参考价值。

 const optionsAdded = {};
eventsListened.forEach(elt => {
      optionsAdded["on" + elt] = delegateAndEmit.call(this, elt);
    });
const eventsListened = ["Start", "Add", "Remove", "Update", "End"];
function delegateAndEmit(evtName) {
  return evtData => {
    if (this.realList !== null) {
      this["onDrag" + evtName](evtData);
    }
    emit.call(this, evtName, evtData);
  };
}

 

function emit(evtName, evtData) {
  this.$nextTick(() => this.$emit(evtName.toLowerCase(), evtData));
}

 

2.另一个方法的策略

 const optionsAdded = {};
 eventsToEmit.forEach(elt => {
      optionsAdded["on" + elt] = emit.bind(this, elt);
    });
const eventsToEmit = ["Choose", "Unchoose", "Sort", "Filter", "Clone"];
function emit(evtName, evtData) {
  this.$nextTick(() => this.$emit(evtName.toLowerCase(), evtData));
}

 

以上是关于vue-draggle源码中的策略模式和柯里化的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的函数柯里化

React源码

JS中的柯里化及精巧的自动柯里化实现

JavaScript高级函数相关知识:函数纯函数柯里化严格模式

JavaScript高级函数相关知识:函数纯函数柯里化严格模式

使用C#体验函数式编程之——Currying(柯里化)