JavaScript的闭包
闭包:
ECMAScript支持闭包。所谓闭包,就是函数能使用函数外定义的变量。
var iBaseNum = 10;
function addNumbers(iNum1, iNum2)
{
function doAddition()
{
return iNum1 + iNum2 + iBaseNum; //调用外部变量
}
return doAddition();
}
相关文档:
js eval
eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。
例子
直接运算
alert(eval('1+2')); // ->3
赋值
eval('var aa = 5');
alert(aa); // ->5
类型转换
var yy = "{a:'aa',b:'bb'}";
yy = eval('(' + yy + ')');
......
貌似CSDN里的都是专业人士,高手可以掠过了,呵呵。
一下是源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content ......
//创建一个新的用户对象,接受一个有许多属性的对象作为参数
function User(properties)
{
for(var i in properties){(function(which){
var p=i;
//创建此属性的一个新的读取器(getter)
which["get"+p] = function(){
&nbs ......
静态方法的实质与任何其他一般函数没有什么不同,最主要的区别在于,其他函数是以对象的静态属性形式存在的。作为一个属性,它们不能在该对象的实例的上下文中访问,而只属于主对象本身的那个上下文中。对习惯了传统类式集成的人来说,这就像类里定义的静态方法。
  ......
label:statement
例:
start:var iCount = 10;
标签可以被后来的break语句或continue语句引用。
例:
var iNum=0;
outermost:
&n ......