为了账号安全,请及时绑定邮箱和手机立即绑定

有关于 function的问题

有关于 function的问题

a :function(){};和 function a(){};的区别 还有用法
查看完整描述

3 回答

已采纳
?
易米八午

TA贡献3条经验 获得超2个赞

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只是变量的一个属性(方法)而已,直接通过   变量名.方法   调用就行。它是绝对不存在提升的。调用之前需要先定义好。


如果感觉还可以,请采纳一下答案

查看完整回答
2 反对 回复 2016-08-06
?
mingyec

TA贡献3条经验 获得超0个赞

简单的解释为上面的是函数表达式,在作用域里要调用该函数必须得在该函数表达式之后

下面的是声明式,作用域里无论哪里都可以调用

查看完整回答
反对 回复 2016-08-06
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

第一种用法是匿名函数的形式,第二种的形式是声明式函数。    

a :function(){};相当于 var a = function(){};这种调用的时候直接用就行了

function   a() {} ,function定义的是一个函数,a是函数名,{}里面属构造的方法。这种正常使用


查看完整回答
反对 回复 2016-08-05
  • 3 回答
  • 0 关注
  • 1677 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信