//非匿名类的直接应用:
new (function Car(name,speed){
this.name = name;
this.speed = speed;
this.showInfo = function(){
document.write("The car\'s name is " + this.name + ",and its speed is " + this.speed);
}
})("宾利",230).showInfo();
//匿名类1:
new (function(name){
this.demo = function(){
alert(name);
}
})("john").demo();
//匿名类2含方法指针:
({
name:"fbi",
getInfo:function(){
document.write(this.name);
}
}).getInfo();
//注意json格式的方法双引号,原则上json键值对的值是不能包含指针
//除非使用类似下面的方式:加上小括号
//eval("(function(name){document.write(name);})")("LESS");
({
"name":"swat",
"getInfo":function(){
document.write(this.name);
}
}).getInfo();
window.eval(({
"name":"CIA",
//闭包处理1,但是下面的this将不再是json匿名对象本身,因为它使用了window的eval将字符串实例化,所以this代表了window对象。
//因此我们可以认为json格式是无法返回带方法的对象格式的,除非使用原始匿名类格式,万不可使用双引号的json格式包含。
"getInfo":"(function(name){document.write(name);alert(this);})",
}).getInfo)("SASS");
({
"name":"CIA",
//闭包处理1,
//"getInfo":new function(name){document.write(name)}('csdn'),
//经过new function得到的将是一个新的Objective对象,所以下面的this将是一个全新的Objective对象。与JSON对象本身无关。即获取不到CIA这个名字。
"getInfo":new function(name){alert(this)}("Demo"),
}).getInfo;
//闭包函数处理:
(function(name){
this.demo = function(){
alert(name);
}
return demo;
})("john")();
//还是闭包函数形式:
(function(){
document.write("Hi,Mr Jiang");
})();
/* 与Jquery很相似的闭包处理,只不过是Jquery滞后自动加载后面的小括号运行而已。足见闭包何其重要!
$(function(){
});
*/
还说JSON与闭包函数何其重要
最新推荐文章于 2022-10-24 11:57:46 发布