javaScript 关于闭包问题

来源:互联网 发布:ubuntu tftp-hpa配置 编辑:程序博客网 时间:2024/05/30 23:41
<span style="white-space:pre"></span>//闭包:指有权访问另一个一个函数作用域中的变量的函数。//创建闭包常见方式就是在一个函数内部创建你一个函数function createComparisonFunction(propertyName){return function(object1,object2){var value1 = object1[propertyName];var value2 = object2[propertyName];if(value1<value2){return -1;}else if(value1>value2){return 1;}else{return 0;}};}//闭包关于this问题var name = "The Window";var object1 = {name:"My Object",getNameFunc:function(){return function(){return this.name;};}};alert(object1.getNameFunc()());//"The Window"(在非严格模式下)var object2 = {name:"My Object",getNameFunc:function(){var that = this;return function(){return that.name;};}};alert(object2.getNameFunc()());//"My Object"//ie内存泄漏function assignHandler(){var element = document.getElementById("someElement");element.onclick = function(){alert(element.id);//闭包的作用链中保存着一个HTML元素,该元素无法销毁}}//解决方案function assignHandler2(){var element = document.getElementById("someElement");var id = element.id;element.onclick = function(){alert(id);};element = null;}

0 0
原创粉丝点击