0

我试图让它全部连接但没有任何工作..我对 JavaScript 很糟糕..它说它是“未定义的”。我认为它已定义..

var convert = function (x) {
    alert(dxc(x));

    function dxc(m) {
        stg(m.charAt(0));
    }

    function stg(d) {
        if (d === "d") {
            d = "p";
        }
    }
};

var conversion = prompt("What do you want to translate?");
convert(conversion);

编辑:这只是为了整个事情的想法,我还没有完成..

4

3 回答 3

3

您忘记了return要返回的值

var convert = function(x) {
    alert(dxc(x));

    function dxc(m) {
        return stg(m.charAt(0));          
    }
    function stg(d) {
        if (d === "d") {
            d = "p";
        }
        return d;
    }
};

var conversion = prompt("What do you want to translate?");
convert(conversion);
于 2013-05-11T03:57:31.103 回答
2

您的函数没有返回任何内容。

尝试:

var convert = function (x) {
    alert(dxc(x));

    function dxc(m) {
        return stg(m.charAt(0));
    }

    function stg(d) {
        if (d === "d") {
            d = "p";
        }

        return d;
    }
};
于 2013-05-11T03:57:50.090 回答
1

d只是一个指向一个值的名称;当你这样做时d = "p",你正在改变d指向的东西,但你只是改变 dd(特别是)的来源m.charAt(0)保持不变。

您必须手动返回修改后的字符串:

function dxc(m) {
    return stg(m.charAt(0)) + m.substring(1);
}

function stg(d) {
    if (d === "d") {
        return "p";
    }else{
        return d;
    }
}
于 2013-05-11T03:58:26.577 回答