javascript方法定义问题!!!
functiona(){}和a=function(){}这两种定义方式到底有啥不同啊,都可以a()这样调用,不知道还为啥要弄这么多方式。...
function a(){}和a=function(){}这两种定义方式到底有啥不同啊,都可以a()这样调用,不知道还为啥要弄这么多方式。
展开
5个回答
展开全部
function a() {}这种方式叫做函数定义,可以在函数定义之前就使用它。a是一个函数名。
a = function() {}这种方式叫做函数表达式,只能在表达式执行完毕后使用。a是一个普通变量。
如果你想定义一个工具函数,在全局或局部作用域里调用,那应该选择函数定义方式。这样你可以在任何时间使用它。
如果你只是想将函数作为一个回调函数传参,那应该选择函数表达式。这种“定义”方式是没有函数名的,因为你不需要给一个临时的回调函数起一个名字。
a = function() {}这种方式叫做函数表达式,只能在表达式执行完毕后使用。a是一个普通变量。
如果你想定义一个工具函数,在全局或局部作用域里调用,那应该选择函数定义方式。这样你可以在任何时间使用它。
如果你只是想将函数作为一个回调函数传参,那应该选择函数表达式。这种“定义”方式是没有函数名的,因为你不需要给一个临时的回调函数起一个名字。
展开全部
var a = function(){ } // 这种形式是 执行了该语句才会,后面的代码才能使用这个a 指向的函数。
function a(){ } //这种函数 在代码中会被解释器 提前预编译,就是在代码执行前,该函数已经定义了。
根本区别就是:a( )在代码执行前就存在,a = function() {} 必须在该后面的代码才能用,应为该函数刚创建
function a(){ } //这种函数 在代码中会被解释器 提前预编译,就是在代码执行前,该函数已经定义了。
根本区别就是:a( )在代码执行前就存在,a = function() {} 必须在该后面的代码才能用,应为该函数刚创建
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
js里,函数是对象,而函数区别于其他对象的地方是,它可以被调用。所以我们可以用多种方式来定义函数(方法)
看一个例子:
a(); // 执行,弹出 a
b(); // 错误,提示 b 未定义
function a(){ // 解析器会读取函数声明,并使之在任何代码执行前可用
alert('a');
}
b=function(){ // 解析器执行到这个代码时,才会执行,所以此前的 b() 会提示b 未定义的错误
alert('b');
}
看一个例子:
a(); // 执行,弹出 a
b(); // 错误,提示 b 未定义
function a(){ // 解析器会读取函数声明,并使之在任何代码执行前可用
alert('a');
}
b=function(){ // 解析器执行到这个代码时,才会执行,所以此前的 b() 会提示b 未定义的错误
alert('b');
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用第二种方式来定义函数在面向对象编程中是很有用的,因为我们能像底下这样使一个函数成为一个对象的属性。
var myObject = new Object();
myObject.add = function(a,b){return a+b};
// myObject 现在有一个叫做“add”的属性(或方法)”
// 而且我能够象下面这样使用它
myObject.add(1, 2);
var myObject = new Object();
myObject.add = function(a,b){return a+b};
// myObject 现在有一个叫做“add”的属性(或方法)”
// 而且我能够象下面这样使用它
myObject.add(1, 2);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var a = function() {};
必须在定义之后才能调用
function a() {}
可以在定义之前调用(解释器自动把所有形似function xxx(){}的定义提到闭包最前面)
必须在定义之后才能调用
function a() {}
可以在定义之前调用(解释器自动把所有形似function xxx(){}的定义提到闭包最前面)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询