JavaScript中常见的this的指向

2018-01-26  本文已影响0人  四环霉素

1.最常见的情况下,函数中的this是指向顶层对象window的。

列如这个下面这段代码:

var a=2;

function showThis()

{

var a=1;

console.log(this.a);

}

showThis();

this指向了window对象

结果输出的应该是2.

2.如果this所在的函数是对象的属性,那么默认情况下this会指向该对象

如下面这段示例代码:

var a=2;

var obj={

a:1,

fun:function(){

console.log(this.a);

}

};

obj.fun();

this指向了Object

最终输出的结果应该是1.

3.JavaScript函数call()或Apply()强制this指向第一个参数对象

如下面这一小段示例代码:

var a=2;

var obj={

a:1,

fun:function(){

console.log(this.a);

}

};

var obj2={

a:3

};

obj.fun.call(obj2);

this指向Object

最终程序的输出结果为3.是obj2的a属性的值。

4 javascript通过new关键字创建的对象,函数中的this会在创建成功后指向被创建的对象

如下面的示例代码:

var a=2;

function fun(a){

this.a=a;

}

var obj = new fun(3);

console.log(obj.a);

this指向fun

在函数执行完之后,fun会赋值给obj,所以最终this指向obj,输出结果为3.

this绑定的优先级按照4,3,2,1的顺序,new的优先级最高。

上一篇 下一篇

猜你喜欢

热点阅读