Javascript函数执行顺序

时间:2012-04-11 17:58:05

标签: javascript

我是javascript的新手并且有一个简单的问题。说我有以下代码:

function entryPoint()
{
   callFunction(parameter);
}

function callFunction(parameter)
{
   ... //do something here
   var anotherFunction = function () { isRun(true); };
}

我的问题是,当调用callFunction(parameter)并声明变量anotherFunction时,isRun(true)是否在此实例化期间实际执行?我认为它没有,并且另一个函数的内容只是“存储”在变量中,以便在行的某个地方逐行执行调用anotherFunction()。任何人都可以澄清功能混乱吗?

3 个答案:

答案 0 :(得分:5)

似乎混淆了这行代码

var anotherFunction = function () { isRun(true); };

这声明了一个function / lambda类型的变量。 lambda声明它没有运行。在通过变量

调用它之前,它内部的代码不会执行
anotherFunction(); // Now it runs

答案 1 :(得分:4)

你几乎完美地描述了它。

anotherFunction只接收对新创建的Function Object的引用(是的,函数也是此语言中的对象),但它不会被执行。

你可以通过调用

来执行它
anotherFunction();
例如

答案 2 :(得分:1)

您可以编写一个简单的测试:

entryPoint();

function entryPoint()
{
    alert("In entryPoint");
    callFunction();
}

function callFunction()
{
    alert("In callFunction");
    var anotherFunction = function () { isRun(); };
}

function isRun()
{
    alert("In isRun");
}

答案是否定的,isRun()不会被调用。