JavaScript函数与方法结果

JavaScript函数与方法结果,javascript,Javascript,我有一个函数和一个方法,都可以检查字符串是否是回文。当函数运行时,它会在每次检查后打印出字符串,但方法不会。为什么会这样 var palindromeFunctionTest = function (str) { if (str.length <= 1) { return true; } if (str.charAt(0) != str.charAt(str.length - 1)) { return false; } c

我有一个函数和一个方法,都可以检查字符串是否是回文。当函数运行时,它会在每次检查后打印出字符串,但方法不会。为什么会这样

var palindromeFunctionTest = function (str) {
    if (str.length <= 1) {
        return true;
    }

    if (str.charAt(0) != str.charAt(str.length - 1)) {
    return false;
    }

    console.log('string: ' + str);


    return palindromeFunctionTest(str.substr(1, str.length - 2));
}

var palindromeMethodTest = {
    chkForPalindrome: function (str) {
        if (str.length <= 1) {
            return true;
        }

    if (str.charAt(0) !== str.charAt(str.length - 1)) {
        return false;
    }

    console.log('string: ' + str);

    return this.chkForPalindrome(str.charAt(1, str.length - 2));
    }
}
var-palindromeFunctionTest=函数(str){

如果(str.length)完整,则应包括调用这两种代码的方式。在第二个版本中,您调用的是
charAt()
,而不是
substr()
(正确)在第一个.Off-topic中:这似乎是检查字符串是否为回文的最不有效的方法。正如Paul Roub所说,您在方法上有一个错误,使用charAt()而不是substr(),无论如何,我想说的是,即使我喜欢递归,因为它非常有用,在你的例子中,因为你必须使用substr,所以它会变慢,使用for和character会快得多,只是试图抓住函数和方法的差异,所以我只是把它作为一个测试,我的疏忽,它们都表现为sa现在请告诉我,谢谢你的帮助。