2013-10-04 36 views
3

这是一些代码,我已经尝试过JavaScript函数在函数内部自我重写它如何在后台工作?

function myFunc(){ 

    alert("3"); 

    myFunc = function(){ 

     alert("something else"); 

    } 


} 

我想了解在JavaScript

当我执行myFunc其警报2和第二,当我执行它提醒"something else"幕后发生了什么。 当这个myFunc被调用时,场景后面发生了什么?函数如何从函数内部重写本身?

回答

5

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

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

+1

当我们重新定义了相同的函数内部功能做它的激活对象也保持不变 –

+0

@bernhard为什么还要为此,在同一机构???重新定义.. – Rex

+0

懒惰笑 –

1

您只是第二次重新声明函数。

在页面加载,你声明myFunc()它提醒3.
当您执行myFunc(),你声明一个新的功能,它提醒“别的东西”;

相关问题