如何创建可以链接在一起的功能?

Abo*_*bod 2 javascript

如何在JavaScript中创建一个函数列表,像这样一起执行操作?

对不起,我不知道它叫什么,但是当你选择的东西比你添加类的时候更像Jquery,你也可以在同一时间做其他事情!

例如:

list.getAll().count()
Run Code Online (Sandbox Code Playgroud)

要么

list.getAll().removeLast().dosomthingElse().count()
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但不幸的是我不能让它工作,除非我扩展功能类,这不是我想要的!

Guf*_*ffa 5

这就是所谓的链接方法.您只需this从方法返回对象reference():

List.prototype.getAll = function() {
  // do something
  return this;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果方法生成新结果,则创建相同类型的对象并返回:

List.prototype.removeLast = function() {
  var items = this.items.slice(0, items.length - 1);
  return new List(items);
}
Run Code Online (Sandbox Code Playgroud)

(您还可以创建一个不同类型的对象.例如,一个toCollection方法可以创建一个Collection包含列表中所有项目的新对象并返回该对象.)