为什么一个JavaScript函数在这里工作而不是另一个?

时间:2013-06-28 21:22:56

标签: javascript

遇到这个小谜题,并且对JavaScript内部的了解不够 看到行为的原因。它并没有阻碍我的工作,但我会很感激 有人可以对它施加一些启示。

function SetVarWrapsMMxCalled(){
    var EstTrigValTHALISTx1=289437562937;
    var BIGDiv = document.getElementById("nested");
    nested.textContent = EstTrigValTHALISTx1;
    return EstTrigValTHALISTx1;
}
function easierThen(){
    var howEasy=88;
    return howEasy;
}

var EverSoEasy = SetVarWrapsMMxCalled(); // Does not work
var EverSoEasy = easierThen();           // This DOES work  ???!

function seriously(EverSoEasy){
    var omgsosilly=EverSoEasy;
    var nestedDiv = document.getElementById("nested");
    nestedDiv.textContent = omgsosilly;
}

对于那些我未能提出足够清楚问题的人,我并没有同时使用这两个问题 这两条线同时出现:

var EverSoEasy = SetVarWrapsMMxCalled(); // Does not work
var EverSoEasy = easierThen();           // This DOES work  ???! 

关键是一行(第二行)产生一个显示在div中的值 可以预料,但第一个没有。

从事物中可以看出,似乎已经探索了很多东西 toying with the code in action问题不是我想象的那样。

现在我有了一个新问题。大。但这是一个漫长的周末。后面。

2 个答案:

答案 0 :(得分:2)

这有一个javascript错误,因为未定义变量nested

function SetVarWrapsMMxCalled(){
    var EstTrigValTHALISTx1=289437562937;
    var BIGDiv = document.getElementById("nested");
    nested.textContent = EstTrigValTHALISTx1;
    return EstTrigValTHALISTx1;
}

可能应该这样:

function SetVarWrapsMMxCalled(){
    var EstTrigValTHALISTx1=289437562937;
    var BIGDiv = document.getElementById("nested");
    BIGDiv.textContent = EstTrigValTHALISTx1;
    return EstTrigValTHALISTx1;
}

将来,请查看浏览器的错误控制台或调试器控制台,它会告诉您哪一行有第一个javascript错误。这应该不是一个谜。当somethnig不工作时,这是我看的第一个地方。在控制台中显示的代码中应该没有错误。


仅供参考,这可以简化为:

function SetVarWrapsMMxCalled(){
    var EstTrigValTHALISTx1 = 289437562937;
    document.getElementById("nested").textContent = EstTrigValTHALISTx1;
    return EstTrigValTHALISTx1;
}

答案 1 :(得分:1)

尝试以下方法:

function SetVarWrapsMMxCalled()
{
    var EstTrigValTHALISTx1=289437562937;
    var BIGDiv = document.getElementById("nested");
    BIGDIv.textContent = EstTrigValTHALISTx1;
    return EstTrigValTHALISTx1;
}