this指针的几种情况:
1.在函数中,this是Window。
2.在定时器中,this是Window。
3.在对象中,this是当前的对象。
4.在构造函数中,this是实例化的对象。
5.在事件绑定中,this是绑定事件的对象。
改变this的方法有3中:
call()括号里有多个参数,第一个参数是要改变指针的对象,后面的参数是原方法中需要用到的参数。 如 f1.call(oDiv,2,3);
apply()括号里有两个参数,第一个参数是要改变指针的对象,后面的参数是需要用到的参数数组。 如f1.apply(oDiv,[2,3]);
bind(参数)(手动调用需要的括号):参数和call 一样。 如 f1.bind(oDiv,2,3)();
call和bind区别:call自动调用,bind手动调用,需要在后面加()。
闭包的条件:
1.外部函数里有一个内部函数,(函数套函数)。
2.内部函数会使用外部函数的局部变量。
闭包的特点:闭包里的变量不会被垃圾回收机制清理,会一直存在内存里。
缺点:内存会泄露。
优点:可以拿到索引值。