var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();javascript这个函数至关于定义了 函数()(),执行一次,html
add便等于 里面的那个函数了! counter=0 被定义了一次java
add(); //返回1数组
add(); //返回2闭包
add() //返回3函数
总结, counter 是定义的局部变量, 只能经过add这个函数才能访问到!,至关于java的privatethis
b.闭包的高级深层次的定义
var biPack =function () {
var counter = 0;
return function () {return counter += 1;}
};
var add=biPack();
debugger;
var i=null;
i=add(); //返回1
i=add(); //返回2
i=add(); //返回3
var b=biPack();
i=b(); // 返回1
i=add(); //返回4
debugger;spa闭包,为每一个执行函数,新建新的内存地址, 若是没有了引用,则会回收内存!prototype
var A=function(name){
this.name=name;
}
A.aPrivate="im a Private type"; // 把当成 一个类 这个是 A类的私有属性 , a1,a2 ,中没有
var a1=new A("b"); // a1 是a的一个对象
var a2=new A("c");
a1.a1Private="a1Private"; //a1. 添加一个属性 ,a2中没有
A.prototype.aPrototype="im a.prototype.aPrototype"; // a1,a2, 都有的属性debug
var A=function(name){ this.name=name; } var c={}; c.name="jack"; var d={name:"rolse"} var a3=new A("d"); // a3 .是 A对象的引用 var e=new Object(); // c,d e 和 f 相同 都是 继承 Object的对象 var f={}; //
var x = 1000 / "Apple";
isNaN(x); // 返回 true
var y = 100 / "1000";
isNaN(y); // 返回 false
var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[3] = "BMW";
mycars.push("im new car");arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
详情 参考 http://www.cnblogs.com/zhangzt/archive/2011/04/01/2002213.html
var a1=new A("b"); // a1 是a的一个对象
var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[3] = "BMW"; mycars[4]=a1; mycars.push("im new car");