You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为自定义函数实现类似jQuery的点表示法(链式调用)功能?

实现自定义函数链式调用(类似jQuery点表示法)的方案

核心原理很简单:调用第一个函数时,返回一个包含所有要暴露方法的对象即可,这些方法执行完成后再把该对象返回,就能一直支持链式调用。

基础实现示例(以JavaScript为例)

// 定义主入口函数
function func(initVal) {
  // 内部存储初始传值,供后续方法调用
  this.value = initVal;
  // 要对外暴露的方法都挂载到返回对象上
  const publicApi = {
    func2: function(param) {
      // 此处写func2对应的业务逻辑,示例为字符串拼接
      this.value += ` ${param}`;
      // 关键:方法执行完返回API对象,支持后续链式调用
      return publicApi;
    },
    // 可自由扩展更多方法,例如getValue用于获取最终结果
    getValue: function() {
      return this.value;
    }
  }
  return publicApi;
}

调用测试

// 完全匹配你需要的调用写法
const result = func("test_string").func2("test_string2").getValue();
console.log(result); // 输出:test_string test_string2

进阶:用类实现更易维护的版本

如果需要扩展的方法较多,用类封装逻辑更清晰:

class ChainTool {
  constructor(initVal) {
    this.value = initVal;
  }
  func2(param) {
    this.value += ` ${param}`;
    // 每个方法都返回当前类实例即可
    return this;
  }
  func3(param) {
    this.value += `, ${param}`;
    return this;
  }
  getValue() {
    return this.value;
  }
}
// 主入口函数直接返回类实例
function func(initVal) {
  return new ChainTool(initVal);
}

调用测试

const res = func("hello").func2("world").func3("chain call").getValue();
console.log(res); // 输出:hello world, chain call

注意点:所有需要支持链式调用的方法,最后都要返回对应的实例/对外暴露的API对象,这是链式调用能够成立的核心逻辑。jQuery的底层核心也是该逻辑:所有实例方法执行完成后都会返回jQuery实例本身。

内容的提问来源于stack exchange,提问作者random13eves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:21:04