这是我已经尝试过的一些代码
function myFunc(){
alert("3");
myFunc = function (){
alert("something else");
}
}
我想了解javascript中幕后发生的事情
当我执行myFunc
其警报2时,第二次执行时会发出警报"something else"
。
调用此myFunc
时,场景背后发生了什么?函数如何在函数内重写自身?
答案 0 :(得分:5)
myFunc
位于全局命名空间中,因此您可以重新定义它,当您使用myFunc = function() ...
为其分配新函数时会发生这种情况。
函数是对象,因此可以随着时间的推移为其分配新的定义。如果您想阻止该功能再次运行,您甚至可以设置myFunc = undefined;
。
答案 1 :(得分:1)
你只是第二次重新声明这个功能。
在页面加载时,您声明myFunc()
警告3.
当您执行myFunc()
时,您声明了一个警告“其他内容”的新功能;