首页 > 代码库 > JavaScript 匿名函数和闭包
JavaScript 匿名函数和闭包
// 1 匿名函数的定义与使用 // 1.1 把匿名函数赋值给变量 通过变量执行 var box = function() { return "Lee"; } box(); // "Lee" // 1.2 通过自我执行来执行匿名函数 // (匿名函数)(); (function() { return "Lee"; })(); // "Lee" // 1.3 匿名函数自我传参 (function(age) { return age; })(100); // 100 // 2 闭包 // 2.1 闭包函数 function box() { return function() { return 10; } } box(); // 见下 /* function (){ return 10; } */ box()(); // 10 // 2.2 通过闭包返回局部变量 function box() { var age = 100; return function() { return age; }; } box(); // 见下 /* function (){ return age; } */ box()(); // 100 // 2.3 使用匿名函数实现局部变量驻留内存中从而累加 function box() { var age = 100; return function() { age++; return age; } } var b = box(); b(); // 101 b(); // 102 b(); // 103 // 销毁引用 等待垃圾收集器来清理 b = null; // 2.4 关于闭包的this对象 // window是js里最大的全局对象 // this在不同的作用域所指对象不同但指向的都是对象本身 // this指window对象 this; // Window {...} this.name = "window"; var box = { name: "box", getName: function() { return function() { // 闭包函数内 this指window对象 return this.name; } } } box.getName()(); // "window" // 对象冒充 box.getName().call(box) // "box" var box = { name: "box", getName: function() { // 闭包函数外 this指box对象 var that = this; return function() { return that.name; } } } box.getName()(); // "box"
JavaScript 匿名函数和闭包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。