1.闭包
1. 什么是闭包?
当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数的内部变量,且返回的那个函数在外部被执行,就产生了闭包。
function fn(){
var num =0;
num =num +1;
return num;
}
console.log(fun()) // 1
console.log(fun()) // 1
console.log(fun()) // 1
function fn(){
var num=0;
return function(){
num++;
return num;
}}
var fn2=fn()
console.log(fn2()) //1
console.log(fn2()) //2
console.log(fn2()) //3
闭包可以保持变量不会被垃圾回收机制回收(长存储)
缺点:导致变量一直占用内存,在IE中会导致内存泄漏
优点:避免全局变量污染环境
2.继承
2.1原型链继承
让一个引用数据类型继承另一个引用类型的属性和方法
//父级
//构造函数
function Person(name