自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
https://www.cnblogs.com/bclshuai/p/11380657.html
JavaScript闭包
(1) 定义
闭包是指将内部局部变量封装在函数内部,同时又能通过外部函数调用改变内部变量的值,并且保证局部变量不销毁,能够在内存中长期存在,进行累加等操作。避免使用全局变量造成哪里都可以修改的缺点,同时引入内存泄露的缺陷。
(2) 实现
定义外部函数,函数内部定义一个变量和内部函数,内部函数中修改变量的值,内部函数的结果作为外部函数的返回值。
function outerFn(){//外部函数名称
var i = 0;//内部局部变量
function innnerFn(){//内部函数
i++;//变量修改累加
console.log(i);
}
return innnerFn;//内部函数作为返回
}
var inner1 = outerFn();//定义全局变量保存外部函数,创建函数对象,函数对象生命周期和全局变量inner1相同,函数对象内部的局部变量与全局变量inner1的生命周期也相同。知道inner1销毁,内部的局部变量才会销毁。
var inner2 = outerFn();//重新创建函数对象,与inner1内存空间不同。
inner1();//1
inner2();//1 inner1和inner2内存独立,互不干扰
inner1();//2
inner2(); //2
outerFn()();//1直接调用,局部变量创建后即销毁,值不保留
outerFn()();//1直接调用,局部变量创建后即销毁,值不保留