This的用法 This作為JavaScript中的關鍵字,在函數中具有四種用法。 一、直接在函數中使用,誰調用這個函數,this就指向誰 例如: 這裡this就代表著全局對象。 二、在對象中使用,一般情況下是指向該對象 例如: 這裡的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);
這兩種方法的作用都相同