JS中this的运用
先看一段代码,请问alert的值是多少呢?
1 function fn(){ 2 alert(this.a); 3 }; 4 let obj ={ 5 'a':1, 6 'b':2, 7 'c':[{ 8 'a':3, 9 'b':4, 10 'c':fn 11 }] 16 }; 17 let a =5; 18 obj.c[0].c();
结果是3。
this代表作用域的值,通俗的理解,就是 当前的方法属于谁,this就指向谁。
obj.c[0].c();
这行代码首先调用了obj对象中 属性c的值 而C是又一个数组对象
然后,调用了c的第一个数组,而这个数组为c[0]创建了三个属性。
然后,调用c[0].c()方法
这个时候,c()属于c[0]的方法
所以,this指向的是c[0]
所以,this.a指的是3
看下面这个例子
function fn(){ alert(this.a); }; let obj ={ 'a':1, 'b':2, 'c':[{ 'a':3, 'b':4, 'c':fn },{ 'a':4, 'b':5, 'c':fn }] }; let a =5; obj.c[1].c();
结果是4。
结果印证了上面的
this指向的是c[1]
所以,this.a指的是4。
重要的话再说一遍
this代表作用域的值,通俗的理解,就是 当前的方法属于谁,this就指向谁。
你记住了吗?