javascript中this

本文深入解析JavaScript中的this关键字,探讨其在不同上下文中指向的变化,包括全局作用域、函数内部及对象方法调用等场景,并介绍如何利用call和apply方法改变this的指向。

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

 下面都是个人理解以及查找的网上的资料,如有不对的地方请指正

This

 

this 始终指向调用它的对象 ,都没有对象调用时就指向window

另外就是this一般都是在function中,当不在function中的时候  一定是指向window的.

 

当在function中的时候,如果没有对象调用它还是指向window的

有人觉得this是根据上下文来确定的,反正我不明白这是什么意思  只要抓住一点 有没有对象调用它就好了,不管这个this隐藏的有深

 

在function中  当有对象调用这个function的时候  this就指向这个对象了......

 

在js中有一个神奇的方法,他就是call,apply他可以改变this 的指向;

 

还有一中情况就是类了, js中的类就是function吗,当new一个function的时候就会生成一个对象(也不一定啊 当在某些情况下还会是function  如构造类 现在我说的是基本的)  this 就指向这个对象了

 

 

以上都是针对js语言来说明的  所说的对象也是原生(Native)对象

另外还有宿主(Host)对象  如dom元素

但是原理还是一样 如果是元素的方法调用的函数 函数里面的this指向dom元素

<input value="text" id="vv" type="button" onClick="alert(this.id)">

 

 

在使用this 中一些常常会遇见的错误 ( 先到这吧  改天在写)

潜套一各函数会改变this的指向,

解决办法 定义一个变量保存this

<script type="text/javascript">
var a = "quanju";
function test(){
 this.a = "neibu";
 var _self = this
 (function(){
  alert(_self.a)
 })()
};
new test();

</script>

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值