我的var变得未定义的问题

rob*_*bin 0 javascript

我试图在javascript中为String类型创建一个反向函数.我的代码就像

String.prototype.reverse = function () {
    var s = "";
    for(var i=this.length;i>=0;i--){
            s+=this[i];
    }
    return s;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用它时,例如 "test".reverse();

而不是给"tset"它给"undefinedtset"

我正在设置变量var s = ""; 在函数内部,仍未定义即将到来.为什么会这样?

Zen*_*noo 5

您只需要更改var i=this.lengthvar i=this.length-1,因为数组从位置0开始:

String.prototype.reverse = function () {
    var s = "";
    for(var i=this.length-1;i>=0;i--){
            s+=this[i];
    }
    return s;
}
Run Code Online (Sandbox Code Playgroud)