我正在尝试创建一个可以支持方法链接的迷你jQuery克隆。到目前为止,我已经提出了以下代码:

var $ = (function () {

  var elements = [];

  function methodOne() {
    console.log('Method 1');
    return this;
  }

  function methodTwo() {
    console.log('Method 2');
    return this;
  }

  return {
    methodOne: methodOne,
    methodTwo: methodTwo
  };
}());

在页面加载时,$变量将由IIFE返回的jQuery克隆对象填充。

我的问题是,如何在保持方法链功能不变的情况下,如何使$对象直接作为函数调用?

现在,我可以使用$.methodOne().methodTwo(),但不能像jQuery一样使用$('some parameter').methodOne().methodTwo()

最佳答案

var $ = function (param) {

  var elements = [];
  console.log(param);

  function methodOne() {
    console.log('Method 1');
    return this;
  }

  function methodTwo() {
    console.log('Method 2');
    return this;
  }

  return {
    methodOne: methodOne,
    methodTwo: methodTwo
  };
};

$('This is a param').methodOne().methodTwo();

07-24 20:31