javascript下function声明一些小结
javascript下function声明一些小结
发布时间:2016-12-30 来源:查字典编辑
摘要:functiontest(){return123;}显然这是一个函数声明,那下面的呢varb=function(){return123};这...

functiontest(){

return123;

}

显然这是一个函数声明,那下面的呢

varb=function(){return123};

这个大家就怀疑了,好似不是声明,因为函数没有名字,只是一个匿名函数,好,再看

varb=functiontest(){return123};

这个到底是不是函数声明呢,好象是,那我回答你"不是"

alert(test);

varb=functiontest(){return123};

可以在非ie上面任何一个js实现去测试,会报告test未定义错误,那如果这样呢

varb=functiontest(){return123};

alert(b);

alert(test);

会显示出functiontest(){...}这样的函数toString结果,可以第二个alert还是异常,为什么呢,也就是说这里functiontest(){return123}不是声明,而是一个函数对象,把引用放到了b里面而已,所以不会象声明一样默认把函数对象绑定到test名字上,那为什么我不叫用ie测试呢,因为

alert(test);

varb=functiontest(){return123};

ie会把函数显示出来,ie比较笨,不会区分单独的function声明和=右面的函数对象区别,另外ie甚至还支持functionString.prototype.test(){...}这样的声明,可见ie的jsbug还真不少了,难怪wilson不支持es4,非得搞一个es3.1出来呢,其实是自己的bug修正版

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类