function(){ //这是一个空方法体.. 这样写不会报错.但我还不知道这样写有什么意义.至少应该有个方法名称 } var v1=function wy; var v2=function wy(); 把wy的 方法赋值给v2 请问下楼主.这是那个公司的面试题....
怎么看语法都不对啊,个人测试是不是这样的? function wy() { ... } var v1 = wy; var v2 = wy(); 如果是这样的话,wy代表方法本身,暂且理解为对象吧,虽然javascript也不是纯粹面向对象的语言 而wy()代表的是方法wy的执行结果
刚才翻看了javascript高级教程声明和实例化部分和5楼说的一样~ 7楼说的有道理
楼主给的代码是错误的,在浏览器上跑一下就知道。 var v1=function wy; var v2=function wy(); 这两行都是错误的语法。 第一个函数定义没有错误,但是如楼上所说,因为没有函数名,其他地方无法对这个函数进行引用,所以无效。我猜想楼主的面试题:function f1(){}var t1=f1; var t2=function f1(){};这样的话,t1就是f1的一个引用,所以t1和f1是完全等价的。而t2是一个临时函数的引用,这个函数没有名称(或者你可以说它的名称是t2,因为你可以通过t2来调用这个函数),注意虽然这个函数起了名称也是f1,实际这个函数名是无效。所以上面的也等价于: var t2=function(){};
}
var v1=function wy; var v2=function wy(); 把wy的 方法赋值给v2
请问下楼主.这是那个公司的面试题....
function wy() {
...
}
var v1 = wy;
var v2 = wy();
如果是这样的话,wy代表方法本身,暂且理解为对象吧,虽然javascript也不是纯粹面向对象的语言
而wy()代表的是方法wy的执行结果
7楼说的有道理
var v1=function wy;
var v2=function wy();
这两行都是错误的语法。
第一个函数定义没有错误,但是如楼上所说,因为没有函数名,其他地方无法对这个函数进行引用,所以无效。我猜想楼主的面试题:function f1(){}var t1=f1;
var t2=function f1(){};这样的话,t1就是f1的一个引用,所以t1和f1是完全等价的。而t2是一个临时函数的引用,这个函数没有名称(或者你可以说它的名称是t2,因为你可以通过t2来调用这个函数),注意虽然这个函数起了名称也是f1,实际这个函数名是无效。所以上面的也等价于:
var t2=function(){};
function()
{
}是错误语法... ...楼主是问
1:
function wy()
{
}和
2:
var wy = function(){
};
的区别吧?!这两种是有区别的,
第一种,会在代码执行前定义函数wy,可以在代码的任何位置调用它...
而第二种,其实是将一个函数赋值给变量wy,代码执行前会定义变量wy,但此时其值是undefined,要等到执行时,才会定义函数wy,因此调用必须放在var wy = function(){};后面才行...