面试的时候经常碰到关于闭包的问题
var name = "the window";
var object = {
name : "my object",
getnamefunc : function(){ return function(){ return this.name;
};
},
getname:function(){
alert(this.name);
}
};
alert(object.getnamefunc()()); //the window
object.getname(); //my object
解决js函数闭包内存泄露问题的办法
function cars(){
this.name = "benz";
this.color = ["white","black"];
}
cars.prototype.saycolor = function(){
var outer = this.color; //保存一个副本到变量中
return function(){
return outer//应用这个副本
};
outer = null; //释放内存
};
var instance = new cars();
console.log(instance.saycolor()())
以上就是关于闭包问题的详细介绍的详细内容。