函数声明未定义-原因
Function declaration undefined - Why?
我得到了一个传递给变量的相当标准的init函数。
var initFunction=函数()。。。
这和"function initFunction(){}"是一样的,不是吗?(内部,JavaScript也创建一个变量)
如果我在init函数中声明了一个函数变量,并在声明之前调用它,那么它必须是可访问的,因为函数中的所有定义(var)都是首先初始化的。这就是我认为JS的本质。
以下代码不起作用(innerFunction未定义)
var initFunction = function(){
if(0 == 0){
innerFunction();
}
var innerFunction = function(){
alert("Hello World");
};
};
initFunction();
顺便问一下:用分号关闭所有函数是否是一种好的做法?
向致以最良好的问候
这里的问题被称为可变吊装。当你这样做:
var innerFunction = function(){
alert("Hello World");
};
呼叫时间为:
var innerFunction = null; // Or undefined may be.
然后在定义之后,它就被定义了。然而,当您将代码替换为:时
if (0 == 0) {
innerFunction();
}
function innerFunction() {
alert("Hello World");
} // Notice no semi colon.
首先定义整个函数。如果你想使用函数表达式,而不是声明,你需要把定义放在调用的顶部。
现在这就行了。
var initFunction = function(){
var innerFunction = function(){
alert("Hello World");
};
if (0 == 0) {
innerFunction();
}
};
用分号关闭所有函数是否是一种好的做法
对于函数表达式,是这是一个很好的练习。对于普通函数声明(使用function
关键字而不是匿名函数),这是不必要的。
这和"function initFunction(){}"是一样的,不是吗?(
没有。函数声明已挂起。函数表达式不是。(您有一个函数表达式)。
在将值分配给innerFunction
(两行之后)之前,您尝试调用innerFunction();
。
相关文章:
- 由于某种原因,JavaScript整数存储为未定义
- 函数声明未定义-原因
- 我可以't克服这个错误“;未定义的局部变量或方法`f'"任何原因
- PHP的原因注意:未定义的索引:
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- 变量在 iPad 上可以未定义与在我的浏览器中定义的原因
- “未捕获的类型错误:无法读取未定义的属性'电子商务'”的可能原因
- 是什么原因导致流星中“模板未定义”
- 错误变量空间未定义原因
- ReferenceError:getElementsById未定义原因
- 如何找到原因AngularJS"自变量'MyCtrl'不是一个函数,未定义”;
- 找不到AngularJS控制器,原因是未定义
- 不确定变量未定义的原因.可能的范围问题
- 设置窗口.在IE8中未定义的onbeforeunload原因"未实现错误
- Karma/Jasmine测试失败的原因是:TypeError: MysmartdevicesCtrl未定义
- 我的全局变量在transationsuccess回调中显示为未定义-无法找出原因
- 元素的原因.键入单选按钮或复选框按钮数组将返回“未定义”
- Angular使用对象的原因未定义
- 返回innerHtml的函数的结果是未定义的,原因是什么
- JavaScript函数返回未定义的原因