使用Jquery(甚至只是Javascript),如何将命令链接在一起

使用Jquery(甚至只是Javascript),如何将命令链接在一起,javascript,jquery,chaining,Javascript,Jquery,Chaining,jquery中有几个函数,您可以执行以下操作: $(“#元素”).each().get('title').othercmd() 如何创建一个类(或一系列类)来复制此行为? 基本上,我想这样做: test = new Something() test.generateSection('title').addData('somedata') 什么是正确的 谢谢只需在每个方法结束时返回您正在操作的内容即可。(this通常)。一种方法是在每个函数中返回“this”(对象)。所以你可以这样做: <

jquery中有几个函数,您可以执行以下操作:
$(“#元素”).each().get('title').othercmd()

如何创建一个类(或一系列类)来复制此行为? 基本上,我想这样做:

test = new Something()
test.generateSection('title').addData('somedata')
什么是正确的


谢谢

只需在每个方法结束时返回您正在操作的内容即可。(
this
通常)。

一种方法是在每个函数中返回“this”(对象)。所以你可以这样做:

<script>
var Something = function() {
  this.hi = function() {
    alert('hi');
    return this;
  };
  this.bye = function() {
    alert('bye');
    return this;
  };
}
var myObj = new Something();
myObj.hi().bye();
</script>

var Something=函数(){
this.hi=函数(){
警报(“hi”);
归还这个;
};
this.bye=函数(){
警惕(“再见”);
归还这个;
};
}
var myObj=新事物();
你好,再见;

只需在所有要链接的方法中返回当前实例,就可以实现链模式

Something.prototype.generateSection = function(title){
    ... code ...
    this.sectionAdded = ...;
    return this;
}
Something.prototype.addData = function(data)
{
  ... continue manipulating this.sectionAdded however you need it ..
  return this;
}

并对“类”的其他方法执行相同的操作。需要记住的是,您必须存储在将来调用中所需的对象,在生成节的情况下,因此必须将其放入实例中(在某些私有变量中,如sectionAdded中)因此,您将能够继续从其他方法操作它。

我不知道是否有一种方法可以轻松地将命令与普通javascript链接在一起,但是如果您想在jQuery中尝试这一点,您必须将代码作为jQuery插件编写。 这其实很简单,有很多教程可以帮助你编写自己的插件

我遇到的最简单的一个是本教程: