我尝试通过以下方式从标记调用函数:
<form onsibmit="actualizeTextFields()">
<!-- Form's stuff -->
</form>
其中功能定义如下:
window.onload = function actualizeTextFields(){
//some stuff
};
它不起作用。我认为将名称actualizeTextFields添加到全局Environment record
。为什么不是这样?
答案 0 :(得分:1)
命名函数表达式只创建一个与其名称内部相匹配的变量(由于错误而在旧版本的Internet Explorer中除外)。
函数声明将在当前范围内创建变量。
您可以将代码重写为:
function actualizeTextFields(){
//some stuff
};
window.onload = actualizeTextFields;
或
function actualizeTextFields(){
//some stuff
};
window.addEventListener('load', actualizeTextFields);
答案 1 :(得分:0)
如果将函数赋值给变量或属性,它将成为表达式,如果您将其命名,它将在函数内部是本地的。解决方案是首先定义它:
function actualizeTextFields(){
//some stuff
}
window.onload = actualizeTextFields;