如何在 JavaScript 中创建无限调用的函数

Pra*_*hnu 0 javascript actionscript

我正在尝试用 JavaScript 编写一个函数,其中将无限调用greet()。预期的结果是在每次通话中都添加问候语。

console.log(greet('hello').greet('world').greet()) 
Run Code Online (Sandbox Code Playgroud)

上面的输出应该给出 Hello world 并且可能有无限greet('string')

我最初的实现是这样的:


let greet = function (a) {
  return  function (a) {
        return function (c){
          return c ? (b + " " + c ) : (a + " " + b);
        }
  }
};
Run Code Online (Sandbox Code Playgroud)

然而,输出并不如预期。我在实施中遇到一些问题,希望得到一些帮助来解决这些问题。有人可以帮我解决这个问题吗?先感谢您。”

geo*_*org 6

基本上,有一个函数返回一个带有函数的对象,该函数又调用返回对象的全局函数......等等

let greet = a => ({
    greet: b => b ? greet(a + ' ' + b) : a
})

console.log(greet('hello').greet('world').greet())
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,@gog。我也找到了办法。我试图不使用箭头功能 (2认同)