我想覆盖一些函数,因为首先要加载的函数取决于用户交互(大部分时间),并且我只想首先加载一个空版本的函数(以确保如果调用此函数,JavaScript不会停止执行并引发错误)。页面加载后,我想加载实际功能。


这是一个好主意吗?
下面的代码能在所有浏览器上运行吗?




//for the first time
function name(){}




//after page loaded
function name(){....//long function//..........}

最佳答案

1.那是个好主意吗?


可能不是,但是我们必须对您实际需要做的事情有更多的了解。也许对于您的用例,这正是正确的解决方案。

或者,提供一些状态信息可能更有意义,一个(一个)函数可以使用该状态信息来确定其逻辑。


  2.以下代码是否可以在所有浏览器上使用?


是的,它在规范中定义。如果在同一作用域中有多个函数声明,则最下面的一个为准。

或者,您可以分配给第一个函数声明创建的标识符:

//for the first time
function name(){}
//when the page loads
name = function() { };


这样做的好处是可以在回调(例如,事件处理程序)中进行操作,而(当然)在事件处理程序中编写函数声明只能在该事件处理程序的范围内定义函数。

关于javascript - 如何覆盖函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40948044/

10-09 17:37
查看更多