目录
一、为什么会出现this关键字?认识this
二、this到底代表谁?
一、为什么会出现this关键字?认识this
代码通过对象参数的传递可以实现,但随着代码的增加、函数嵌套、各级调用等变得越来越复杂,那么对象参数的传递就会使你的代码变得十分杂乱,甚至自己都分不清了。而this关键字提供了一个更加优雅而灵便的方案,传递一个隐式的对象引用让代码变得更加简洁和复用。
二、this到底代表谁?
this代表的是执行这个this代码的环境对象。
在代码中有this在嵌套中就找最近一级,但最重要的是看运行对象,运行对象决定一切。
1.在脚本/全局函数中this代表的是window
//this在脚本中代表的是window全局对象
console.log(this)
var a=this;
console.log(a);
//this在全局函数中代表的是window全局对象
function fn6666(){
console.log(this)
}
console.log(this,1111)
2.在运行中,是它的运行对象
例如:
obj.fn() ==> obj
obj.xx1.xx2() ==> obj.xx1这个对象属性
fn()[1]() ==> fn() 返回的数组
在这里总结了一点点,可以参考一下:
fn() // window
obj.fn() //obj
obj.xx1.xx2() //obj.xx1这个对象属性
(function(){})() //window
fn()() // window
fn()[1]() // fn() 返回的数组