当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript下function声明一些小结

Javascript
用javascript实现的图片马赛克后显示并切换加文字功能
通用的javascript 换行色换列色的小js
滑动门,简洁,新手上路制作篇 (小鸽子系列)
文字模糊特效
javascript实现的又一个不错的滑动导航效果
css实现的图片模糊效果
javascript跟随鼠标x,y坐标移动的字效果
js实现用于建立新的一行且增加的四个文本框为空的且被禁用
XML+XSL 与 HTML 两种方案的结合
javascript生成/解析dom的CDATA类型的字段的代码
IE与FireFox的兼容性问题分析
关于脚本操作文本域的问题
刷新时清空文本框内容的js代码
又一个不错的js浮动广告代码
网页背景渐变效果代码
非常漂亮的让背景如此暗淡(一种弹出提示信息时页面背景色调改变的方法)
[原创]jser必看的破解javascript各种加密的反向思维方法
eval(function(p,a,c,k,e,d)系列解密javascript程序
从sohu弄下来的flash中展示图片的代码
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)

Javascript 中的 javascript下function声明一些小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 227 ::
收藏到网摘: n/a

function声明一些东西,我们都知道function和var一样是预处理的在js里面,但是到底什么是函数声明呢,我们来看几个例子 function test(){
return 123;
}

显然这是一个函数声明,那下面的呢
var b=function(){return 123};

这个大家就怀疑了,好似不是声明,因为函数没有名字,只是一个匿名函数,好,再看
var b=function test(){return 123};

这个到底是不是函数声明呢,好象是,那我回答你"不是"
alert(test);
var b=function test(){return 123};

可以在非ie上面任何一个js实现去测试,会报告test未定义错误,那如果这样呢
var b=function test(){return 123};
alert(b);
alert(test);

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

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