JavaScript中常见的this的指向

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的优先级最高。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,698评论 0 13
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,375评论 1 10
  • 在面向对象的语言中(例如Java,C#等),this含义是明确且具体的,即指向当前对象。一般在编译期绑定。而在ja...
    一木_qintb阅读 3,025评论 0 0
  • 葡萄藤PPT JS中this的指向 大家好,我是IT修真院郑州分院第6期的学员王栋,一枚正直、纯洁、善良的前端程序...
    17064阅读 3,757评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,383评论 2 17