js中thisd的用法
* this是js中的关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,一般情况下,this指代的是调用函数的当前对象.细分来说,有以下的用法
* 1:纯粹的函数调用
*这是最通常的用法,属于全局性调用,因此this就代表全局对象Global
*var x = 1;
function test1() {
this.x = 0
console.log(x);
}
test1()//x=0,证明正常的函数调用属于全局性调用
*
*2.作为对象方法调用
*函数作为某个对象的方法调用,则this指这个上级对象
*var x = 1
function test2() {
console.log(this.x)
}
var obj = {}
obj.x = 2
obj.m = test2
obj.m()//x = 2,所以这里this指的是当前调用函数的对象
3.作为构造函数调用
所谓构造函数,就是通过函数构造一个新的对象(Object),这时this指这个新的对象
var x = 23
function test3() {
this.x = 1
}
var obj = new test3()
console.log(obj.x)//x =1
4.apply调用
apply是Function原型的一个方法,用于改变函数的调用对象,它的第一个参数就是调用的对象名,因此this指第一个参数
var x = 23
function test4() {
console.log(this.x)
}
var obj = {}
obj.m = test4
obj.x = 1
obj.m()//x = 1
obj.m.apply()//x = 23
obj.m.apply(obj)//x = 1