闭包是:
闭包是函数的局部变量——在函数返回后保持活动状态,或者
闭包是一个堆栈帧,它在函数返回时不会被释放(就好像一个'堆栈帧'被malloc'ed而不是在堆栈上!)。
只是想确认以下是否考虑关闭?
1)在函数内绑定javascript函数。
var Books = {
init:function(){
$('#box').bind('click',function(){
console.log('click');
});
}
};
Books.init();
2) 在函数内声明函数
function sayHello(name) {
var text = 'Hello ' + name;
var sayAlert = function() { alert(text); }
}
var hello = sayHello();
有时我仍然无法区分哪个是闭包,是函数中的所有函数都考虑闭包还是仅将返回的内部函数保留为变量/引用的函数。例子:
function sayHello(name) {
var text = 'Hello ' + name;
var sayAlert = function() { alert(text); }
**return sayAlert;**
}