javascript方法定义问题!!!

functiona(){}和a=function(){}这两种定义方式到底有啥不同啊,都可以a()这样调用,不知道还为啥要弄这么多方式。... function a(){}和a=function(){}这两种定义方式到底有啥不同啊,都可以a()这样调用,不知道还为啥要弄这么多方式。 展开
 我来答
nbyh2012
2013-06-02 · TA获得超过3278个赞
知道小有建树答主
回答量:483
采纳率:100%
帮助的人:794万
展开全部
function a() {}这种方式叫做函数定义,可以在函数定义之前就使用它。a是一个函数名。
a = function() {}这种方式叫做函数表达式,只能在表达式执行完毕后使用。a是一个普通变量。

如果你想定义一个工具函数,在全局或局部作用域里调用,那应该选择函数定义方式。这样你可以在任何时间使用它。

如果你只是想将函数作为一个回调函数传参,那应该选择函数表达式。这种“定义”方式是没有函数名的,因为你不需要给一个临时的回调函数起一个名字。
wangdu_com
推荐于2016-04-04 · 超过16用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:41.5万
展开全部
var a = function(){ } // 这种形式是 执行了该语句才会,后面的代码才能使用这个a 指向的函数。

function a(){ } //这种函数 在代码中会被解释器 提前预编译,就是在代码执行前,该函数已经定义了。

根本区别就是:a( )在代码执行前就存在,a = function() {} 必须在该后面的代码才能用,应为该函数刚创建
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinyc007
2013-06-02 · TA获得超过934个赞
知道小有建树答主
回答量:398
采纳率:75%
帮助的人:471万
展开全部
js里,函数是对象,而函数区别于其他对象的地方是,它可以被调用。所以我们可以用多种方式来定义函数(方法)

看一个例子:
a(); // 执行,弹出 a
b(); // 错误,提示 b 未定义
function a(){ // 解析器会读取函数声明,并使之在任何代码执行前可用
alert('a');
}
b=function(){ // 解析器执行到这个代码时,才会执行,所以此前的 b() 会提示b 未定义的错误
alert('b');
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongrenfei21
2013-06-02 · TA获得超过2926个赞
知道小有建树答主
回答量:1264
采纳率:0%
帮助的人:1203万
展开全部
使用第二种方式来定义函数在面向对象编程中是很有用的,因为我们能像底下这样使一个函数成为一个对象的属性。
var myObject = new Object();
myObject.add = function(a,b){return a+b};
// myObject 现在有一个叫做“add”的属性(或方法)”
// 而且我能够象下面这样使用它
myObject.add(1, 2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ck_2036
2013-06-02 · TA获得超过906个赞
知道小有建树答主
回答量:904
采纳率:33%
帮助的人:727万
展开全部
var a = function() {};
必须在定义之后才能调用
function a() {}
可以在定义之前调用(解释器自动把所有形似function xxx(){}的定义提到闭包最前面)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式