如果我更改参数值,则无法理解为什么此函数返回false

时间:2016-10-27 13:53:12

标签: javascript

我正在学习java脚本in here并且无法理解这个例子,如果我将ninja.yell(4)更改为任何值,例如ninja.yell(5)或3,则返回false。

var ninja = {
    yell: function(n) {
        return n > 0 ? ninja.yell(n - 1) + "a" : "hiy"; 
    }
}; 
console.log(ninja.yell(4) == "hiyaaaa", "A single object isn't too bad, either.");

如果我以这种方式使用功能

var ninja = {
    yell: function(n) {
        return n > 0 ? ninja.yell(n - 1) + "a" : "hiy"; 
    } 
}; 
console.log(ninja.yell(4));

它打印' hiy'一次和一次'喜欢" hiyaaaa"四次,我真的很困惑,请帮助谢谢。

2 个答案:

答案 0 :(得分:1)

该函数返回hiy,后跟一些等于该数字的a s。您正在将其与hiyaaaa进行比较。

如果您更改a的数量,则比较不会匹配。

答案 1 :(得分:0)

ninja.yell(4) == "hiyaaaa"是一个比较,它看起来像字符串" hiyaaaa"将根据您发送给方法的数量而改变。

ninja.yell(4) == "hiyaaaa"字面意思是" ninja.yell(4)是否等于' hiyaaaa'?"

如果你把它改成5,那么回报实际上会有5个,所以它不会等于" hiyaaaa"所以你弄错了