JS之This的用法
This的用法
This作为JavaScript中的关键字,在函数中具有四种用法。
一、直接在函数中使用,谁调用这个函数,this就指向谁
例如:
1 var n = "指我"; 2 function fun(){ 3 console.log(this.n); 4 } 5 fun(); //指我
这里this就代表着全局对象。
二、在对象中使用,一般情况下是指向该对象
例如:
1 function fun(){ 2 console.log(this.n); 3 } 4 var obj = {}; 5 obj.n = "在这里"; 6 obj.m = fun; 7 obj.m(); //在这里
这里的this就指向这个上级对象。
三、在构造函数中使用
例如:
1 function fun(){ 2 this.n = "LOVE"; 3 } 4 var obj = new fun(); 5 console.log(obj.n); // LOVE
这里的this就指向这个构造函数生成的一个新的对象。
四、改变This的指向,有两种方法:
1、call(指向谁,参数1、参数2、…)
2、apply(指向谁,[参数1、参数2、…])
这两种方法的作用相同,传递的写法不同
例如:
1 function Person(name,age,sex){ 2 this.name = name; 3 this.age = age; 4 this.sex = sex; 5 } 6 function Worker(name,age,sex,id,tel){ 7 // Person.call(this,name,age,sex); 8 Person.apply(this,[name,age,sex]); 9 this.id = id; 10 this.tel = tel; 11 } 12 var worker = new Worker("张三",18,"男","001","123456789"); 13 console.log(worker);
这两种方法的作用都相同