JS之This的用法
程序员文章站
2022-06-21 17:00:53
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);
这两种方法的作用都相同