簡體   English   中英

curry函數能不能中途執行?

[英]Can curry functions be executed half way?

假設我有一個這樣的 function:

function foo(){
  return () => {
    return "bar"
  }
}

foo()() // => "bar"

有沒有辦法在不使用參數的情況下返回 function 以外的東西?

foo()() // => "bar"
foo()   // => "foo"

不可以。如果返回的值以后必須是可調用的,那么它必須是 function - 沒有例外。

不過,您可以在 function 上放置一個屬性。

 function foo(){ return Object.assign( () => { return "bar" }, { prop: 'bar' } ); } console.log(foo()()); console.log(foo().prop);

或者返回 function 和其他東西。

 function foo(){ return [ () => { return "bar" }, 'bar' ]; } const [fn, val] = foo(); console.log(fn()); console.log(val);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM