簡體   English   中英

+三元運算符中的運算符

[英]+ operator in a ternary operator

我正在閱讀John Resig的《 JavaScript Ninja秘密》 ,並且在理解三元運算符如何在此遞歸函數中工作時遇到了一些麻煩:

var  ninja = {
  chirp: function signal(n) {
    return n > 1 ? signal(n - 1) + '-chirp' : 'chirp';
  }
};

+運算符在這里如何工作? 我知道它是串聯返回的字符串,但是signal(n - 1)不干擾它呢? 乍一看似乎是將字符串追加到函數調用中。

+運算符將-chirp附加到函數調用的結果 signal是一個遞歸函數-一個調用自身的函數。

添加一些括號后,可能會變得更加清晰:

return (n > 1) ? (signal(n - 1) + '-chirp') : ('chirp');

或作為普通的if子句:

if( n > 1 ) {
  return signal(n - 1) + '-chirp';
} else {
  return 'chirp';
}

因此,實際上,字符串-chirp與對signal()的遞歸調用的結果串聯在一起。

暫無
暫無

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

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