Javascript 如何将所选元素传递给';这';在链式函数中

Javascript 如何将所选元素传递给';这';在链式函数中,javascript,jquery,methods,jquery-chaining,Javascript,Jquery,Methods,Jquery Chaining,我试图理解链式函数是如何工作的,尤其是如何将所选元素传递给链式函数 假设我们有一个链式函数,如下所示: var func = {}; func.remove= function() { $(this).remove(); } var elm = $("foo"); elm.func.remove(); 如何通过jQuery或JavaScript选择元素并将其传递给链接函数,如下所示: var func = {}; func.remove= function() { $(thi

我试图理解链式函数是如何工作的,尤其是如何将所选元素传递给链式函数

假设我们有一个链式函数,如下所示:

var func = {};
func.remove= function() {
    $(this).remove();
}
var elm = $("foo");
elm.func.remove();
如何通过jQuery或JavaScript选择元素并将其传递给链接函数,如下所示:

var func = {};
func.remove= function() {
    $(this).remove();
}
var elm = $("foo");
elm.func.remove();


链式函数是一种返回调用它的对象的方法(因此,除非扩展本机DOM对象,否则它不能返回元素本身,这是不推荐的)

func
没有链接,因为它根本不是函数<代码>删除在未返回其所属对象之前未链接

如果要执行与元素一起工作的链接函数,则需要定义一个对象,在该对象上定义链接方法,并将元素存储为该对象的属性

例如:

function MyConstructor(element) {
    this._element = element;
}

MyConstructor.prototype.doA = function doA () {
    console.log(this._element);
    return this;
};

MyConstructor.prototype.doB = function doB () {
    element.style.display = "none";
    return this;
};

var example = new MyConstructor(document.getElementById('foo'));
example.doA().doB();

链式函数是一种返回调用它的对象的方法(因此,除非扩展本机DOM对象,否则它不能返回元素本身,这是不推荐的)

func
没有链接,因为它根本不是函数<代码>删除在未返回其所属对象之前未链接

如果要执行与元素一起工作的链接函数,则需要定义一个对象,在该对象上定义链接方法,并将元素存储为该对象的属性

例如:

function MyConstructor(element) {
    this._element = element;
}

MyConstructor.prototype.doA = function doA () {
    console.log(this._element);
    return this;
};

MyConstructor.prototype.doB = function doB () {
    element.style.display = "none";
    return this;
};

var example = new MyConstructor(document.getElementById('foo'));
example.doA().doB();

所有链式方法都是返回对象的函数。这允许开发人员简单地调用返回对象上的方法。您的第一个示例(
func.remove
)不是可链接的方法,因为它不返回任何内容。请参见:所有链接的方法都是返回对象的函数。这允许开发人员简单地调用返回对象上的方法。您的第一个示例(
func、.remove
)不是可链接的方法,因为它不返回任何内容。请参见:非常感谢,您的解释非常有用。非常感谢,您的解释非常有用。