var a = function () {} // 函数表达式
function a () {} // 函数声明一般定义函数就是上面那种方式了,你写的a: function () {}应该是方法名值对。我讲一下函数表达式和函数声明的主要区别吧。函数表达式没有函数提升,因为它是匿名函数。a();
var a = function () {}上面这段代码实际执行顺序为var a; // undefined
a();
a = function () {}上面代码只会执行变量提升,所以会报错,因为执行a()时,a还不包含对函数的引用。a();
function a () {}上面这段代码实际执行顺序为function a () {}
a();上面这个叫做函数提升。所以不会报错,会正常执行。你的那个a: function () {}他应该是属于一个对象,a只是变量的一个属性(方法)而已,直接通过 变量名.方法 调用就行。它是绝对不存在提升的。调用之前需要先定义好。如果感觉还可以,请采纳一下答案