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

如何在JavaScript中实现支持无限链式调用的greet函数?

修复支持无限链式调用的greet函数

原代码存在明显问题:仅支持最多三次调用,且存在未定义变量b,完全无法实现无限链式拼接需求。以下是正确的实现方案:

实现代码

function greet(str) {
  let message = str ? str.trim() : '';

  const chainable = function(nextStr) {
    if (nextStr) {
      message += ` ${nextStr.trim()}`;
    }
    return chainable;
  };

  chainable.toString = function() {
    return message.charAt(0).toUpperCase() + message.slice(1);
  };

  return chainable;
}

实现说明

  • 用内部变量message维护拼接后的字符串,每次调用传入新字符串时,自动追加空格并拼接(trim()处理避免多余空格)
  • 返回的chainable函数本身就是可链式调用的载体,每次调用后依然返回自身,实现无限链式调用
  • 重写toString方法:当console.log输出时,会自动触发该方法,返回首字母大写的最终拼接结果,匹配示例的输出要求

测试验证

执行console.log(greet('hello').greet('world').greet()),会输出Hello world,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:31:02