1、什么是闭包:
闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,
因此可以把闭包简单理解成“定义在一个函数内部的函数”。
function a(){ var i=0; function b(){ alert(++i); } return b; } var c = a();//a()方法返回的是b方法的引用。 c();//运行c()就是运行b();
这段代码有两个特点:
1、函数b嵌套在函数a内部;
2、函数a返回函数b。
这样在执行完var c=a()后,变量c实际上是指向了函数b,再执行c()后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?因为函数a外的变量c引用了函数a内的函数b,就是说:当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。(引用:http://tech.ddvip.com/2008-11/122690194992899.html)
http://blog.csdn.net/haiqiao_2010/article/details/12653555
用eval函数将ajax 返回的json字符串转换成js对象时需要用一对"()"先将该字符串包住;
js代码:
function jsonToJsObj(){ var jsonStr='{"name":"","sex":"男"}';//花括号外面还要有"'"符号;??? var jsObj=eval("("+jsonStr+")"); alert(jsObj.name); }
html<object>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"> 您的浏览器不支持Flash,请点击<a href="http://www.macromedia.com/go/getflashplayer">下载</a>。 <param name="movie" value="/1.swf" /> <param name="quality" value="high" /> </object>
网页中的object其实就是一个COM组件(概念可以网上查一下),classid就是这个COM组件在系统中注册的一个ID值,有了这个ID值系统才能找到这个COM组件对应的DLL文件,就像普通的软件用其他DLL时需要一个路径一样。而后面的codebase一般是用来下载和更新组件用的,比如浏览某个网页时,发现您的机器上没有安装这个组件,就会去codebase的地方下载组件,有了新的版本也会提示您安装新版本。基本就这样