js 中的 this 作用域 原型

本文详细介绍了JavaScript中this关键字的指向规则及其变化,并解释了JS作用域的工作原理,包括函数作用域和作用域链的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看一些第三方插件时,都涉及到this 对象,对于js的this对象还没有一个全面的认识,感觉不同于java的js,所以特意梳理简单学习了一会。this是js的一个关键字,随着

函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。在js中我们可以自定义一个function函数,而该函数既可以单独的调用

也可以作为构造函数来调用,甚至可以作为对象的一个方法来调用,此时在调用函数的过程中,this指向是不同的。

this指向:

  • 当前new的对象

如果函数被当做构造方法,或者对象的某个方法来调用,此时this指向当前函数所属的对象。

  • window对象

如果自定义的函数被直接来调用,此时函数体中的this指向window对象

js  作用域

每种语言都有自己的作用域,也就是变量或者函数的生命周期,熟悉java开发的都知道,java中变量的作用域是以一对'{}' 进行定义的,在花括号内可以我们定义的

变量,花括号外访问我们定义的变量,就会报错,当然同名变量,花括号内的优先级别高。那js的作用域又是如何呢?


在js中,我们定义的变量与其他编程语言不一样,是以函数块为为作用域的,也就是说在函数体内,无论我们的变量在何处定义,我们在函数体内都可以对其进行

访问。

js 作用域链

在js中,当查询某个对象的属性时,会按照一定的规则来进行查找,先从当前对象查找,然后再当前对象的上级对象,以此类推,最后知道window对象,如果在

某个对象中查找到某个属性,那么立即返回,如果window对象中都没有查找到,那最后返回underfined.如此的查找过程便构成了js的作用域链


js 原型



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值