在javascript中声明函数时出错
我有类似的东西在javascript中声明函数时出错,javascript,function,Javascript,Function,我有类似的东西 var a = function b(){}; a() // it's work b() // error b is not define 我知道没有人会声明这样的函数。但是为什么javascript在我这样编码时不会抛出错误呢。但是当我开始通过call b()调用函数时,它抛出了一个错误 有人能解释一下为什么吗?你为什么不这么做: a=函数(){ …对函数a进行编码。。 } b=函数(){ …代码功能b。。 } 通过a()调用函数之后和b()这是一个命名函数表达式 它的名称
var a = function b(){};
a() // it's work
b() // error b is not define
我知道没有人会声明这样的函数。但是为什么javascript在我这样编码时不会抛出错误呢。但是当我开始通过call b()调用函数时,它抛出了一个错误
有人能解释一下为什么吗?你为什么不这么做:
a=函数(){
…对函数a进行编码。。
}
b=函数(){
…代码功能b。。
}
通过
a()调用函数之后代码>和b()代码>这是一个命名函数表达式
它的名称仅在函数内部可见,正如您将函数b放入变量a中所建议的那样
使用“var”时,变量可以是任何类型,在这种情况下,它变成“function b”
所以b没有定义
Javascript是一种弱类型语言
var a=函数b(){}
是有效的声明,但b的范围仅限于a。你不能在那之外访问它
此函数始终返回值
var a = function b(){};
A是一个与函数b相等的变量,这意味着当您调用A()时,它会调用b();您将在b()上获得错误;“未定义”,因为它是指定的值。您几乎是在尝试调用赋值,它类似于:var a=“b”;然后你试着调用字符串“b”();是的,这对我来说很有意义。非常感谢但是仍然想知道为什么javascript没有抛出错误?这与类型无关。OP不是一个函数声明,它是一个函数表达式。IE 6有一个错误,命名函数表达式变成了外部作用域中的函数。但希望那些日子已经过去了…;-)我从来不知道,有趣的信息:)那么javascript中的“函数b”是什么呢。看起来没什么意义。当调用a()时也是如此。此函数仍正常运行:)