博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript设计模式之匿名函数与闭包
阅读量:6989 次
发布时间:2019-06-27

本文共 1547 字,大约阅读时间需要 5 分钟。

匿名函数

(function () {    var foo = 10;    var bar = 2;    console.log(foo*bar);})(); // 20

带参数的匿名函数

(function (foo,bar) {    console.log(foo*bar);})(10,2); // 20var 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()()); // undefinedconsole.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

方法论总结:可以针对关键点,进行深入探讨。百度搜索相关的博文或百科探索。

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6197068.html,如需转载请自行联系原作者

你可能感兴趣的文章
14个最聪明的生活小窍门,省钱又实用
查看>>
《R语言编程艺术》——2.11 向量元素的名称
查看>>
钱多了也发愁 亚马逊掌门贝索斯捐款无门向网友求救
查看>>
苹果公司的数据中心到底使用了多少水?
查看>>
阿里牵头研制“大数据安全能力成熟度模型”国家标准
查看>>
飞信回归,企业版正式上线,下一个羊毛党是你吗?
查看>>
2016中国大数据产业博览会暨高峰论坛
查看>>
卡巴斯基发现网页技术中的危险漏洞
查看>>
医疗行业十大热门趋势之六:网络安全
查看>>
买新不买旧?选购固态硬盘的几点建议
查看>>
大数据精准营销必读的“三步曲”及“两误区“
查看>>
Cray:XC50提供了最高密度的性能
查看>>
Dropbox活得挺好:去年招了500人 还有大把现金
查看>>
Silverlight+WCF 实战-网络象棋最终篇之房间装修-WCF端(二)
查看>>
数据中心托管节约企业成本
查看>>
人工智能领域技术落地已迫在眉睫
查看>>
Spark大数据处理系列之Machine Learning
查看>>
被 281 亿个传感器包围时,我们如何重新定义生活?
查看>>
openSUSE 11.2 安装飞鸽传书 g2ipmsg
查看>>
用大数据做产业组织 用“互联网+”做产业服务
查看>>