在JavaScript中的函数之后创建函数

时间:2019-05-04 14:57:49

标签: javascript node.js function

因此,我想为Node创建一个库程序包,该程序包选择一些元素并将其传递给下一个函数。不过,您可以将其用于其他相关功能。

这是我想要的例子。

Selector(element).Action(options, callback);

实际上,就是这样;

cont arr = [1, 2, 3];
Q(arr).insert(4, function (newArr, lengthIndex) {
    console.log(newArr); // => [1,2,3,4]
    console.log(lengthIndex); // => 4
});

因此,我想知道如何在Action()函数内部制作Selector函数。我还希望仍然可以使用Q(element)为此返回一个自定义对象。我当时想返回一个带有函数和自定义内容的对象,但是我不确定。

const Q = function (Element) {
    return {
        type:   typeof Element,
        length: Element.length,

        // Functions
        insert: function (Attribute, Callback) {
            Element.push(Attribute);
            Callback(Element, Element.length);
            return Element;
        }
    };

}

我想知道是否有更好的方法可以做到这一点。该库将具有增强的功能和有关特定内容的信息,还将具有HTTP请求。我要使用jQuery样式的程序包,想知道是否还有另一种方法。

〜Q

1 个答案:

答案 0 :(得分:0)

它调用chaining。最好的方法是将类与必需的方法一起使用,这将返回其自身的return this,或在调用的方法中创建新的一个/另一个类的实例,例如return new Action(someData)。如果您不想从外部使用类,则可以创建函数包装器来创建实例并返回它:

class Selection{

constructor(args){
  this.args = args;
}

doWork(){
  console.log(this.args);
  return this;
}
}


function select(...args){
   return new Selection(args);
}

select("something").doWork()