首页 > 解决方案 > 在 JavaScript 中的函数之后创建一个函数

问题描述

所以,我想为 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 风格的包,想知道是否还有其他方法。

~问

标签: javascriptnode.jsfunction

解决方案


它调用chaining. 最好的方法是使用具有所需方法的类,这将返回它的 self ,或者像在被调用的方法中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()

推荐阅读