javascript函数在函数内部重写它如何在场景后面工作?

时间:2013-10-04 07:07:53

标签: javascript function scope

这是我已经尝试过的一些代码

function myFunc(){

    alert("3");

    myFunc = function (){

        alert("something else");

    }


}

我想了解javascript中幕后发生的事情

当我执行myFunc其警报2时,第二次执行时会发出警报"something else"。 调用此myFunc时,场景背后发生了什么?函数如何在函数内重写自身?

2 个答案:

答案 0 :(得分:5)

myFunc位于全局命名空间中,因此您可以重新定义它,当您使用myFunc = function() ...为其分配新函数时会发生这种情况。

函数是对象,因此可以随着时间的推移为其分配新的定义。如果您想阻止该功能再次运行,您甚至可以设置myFunc = undefined;

答案 1 :(得分:1)

你只是第二次重新声明这个功能。

在页面加载时,您声明myFunc()警告3.
当您执行myFunc()时,您声明了一个警告“其他内容”的新功能;