Javascript设计模式之匿名函数与闭包
JavaScript设计模式 函数 闭包 匿名
2023-09-27 14:24:30 时间
匿名函数
(function () {
var foo = 10;
var bar = 2;
console.log(foo*bar);
})(); // 20
带参数的匿名函数
(function (foo,bar) {
console.log(foo*bar);
})(10,2); // 20
var baz = (function (foo,bar) {
return foo * bar;
})(10,2);
console.log(baz); // 20
闭包,closure 闭包,闭包就是能够读取其他函数内部变量的函数
var baz;
(function () {
var foo = 10;
var bar = 2;
baz = function () {
return foo * bar;
}
})();
console.log(baz()); // 20
闭包代码块
能理解下面的几个代码块,就算能理解闭包了。闭包可以读取其他函数内部变量。
var that = this;
就是精髓。
// 代码块一
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name; // this是匿名函数
};
}
};
console.log(object.getNameFunc()()); // undefined
console.log(object.getNameFunc().call(object)); // My Object
// 代码块二
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){ // 闭包
return that.name;
};
}
};
console.log(object.getNameFunc()()); // My Object
// 代码块三
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return name;
};
}
};
console.log(object.getNameFunc()()); // The Window
// 代码块四
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return this.name; // this是object
}
};
console.log(object.getNameFunc()); // My Object
方法论总结:可以针对关键点,进行深入探讨。百度搜索相关的博文或百科探索。
相关文章
- 使用JavaScript在创建好的html文档内添加新的元素节点
- 【趣事】用 JavaScript 对抗 DDOS 攻击
- 详解javascript实现自定义事件
- Javascript设计模式之创建构造函数和方法
- javascript坐标:event.x、event.clientX、event.offsetX、event.screenX 用法
- Static and Instance Methods in JavaScript
- JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
- 《JavaScript设计模式》学习记录
- JavaScript 中常见设计模式整理
- JavaScript------脚本化HTTP
- JavaScript闭包
- 【Javascript设计模式1】-单例模式
- JavaScript中getBoundingClientRect()方法详解
- JavaScript Comparison and Logical Operators
- JavaScript验证身份证号
- 开发中常用的 25 个JavaScript 单行代码