This的指向问题与闭包
This的指向问题一直是JavaScript的一个容易混淆的地方,闭包与this的结合更是让人头晕,现在和大家分享一下我的学习过程
This的用法
总结起来比较常用的在三个地方
全局中
全局中,函数的调用,this基本都是指向window
点击事件中
在点击事件中,this 指向的是当前触发事件的元素对象
构造函数中
在构造函数中,this 表示的是正在初始化的对象本身
举个简单的例子
1 | var obj = { |
闭包
闭包的作用有两个:让外部访问函数内部的变量、另一个就是让这些变量的值始终保持在内存中。
实现的方法,在函数的内部在声明一个函数,返回这个函数,就可以获取到外部的变量,举个简单的例子
1 |
|
也就是说,当内部函数的作用域,被外部引用时,就创建了该内部函数的闭包,如果内部函数引用了位于外部函数的变量,当外部函数调用完毕后,这些变量在内存中不会被释放,因为闭包需要他们
有两个比较经典的关于this的指向与闭包的小demo,也和大家分享一下,如果知道了原理,this的指向就不再困扰你了
第一题
1 |
|
第二题
1 |
|
以上就是我对this指向的一些理解,不足之处希望大牛们多提一些意见,感激不尽
-------------本文结束感谢您的阅读-------------