this指针与闭包

139 阅读1分钟

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.内部函数会使用外部函数的局部变量。

闭包的特点:闭包里的变量不会被垃圾回收机制清理,会一直存在内存里。

缺点:内存会泄露。

优点:可以拿到索引值。