彻底弄懂js中的this指向

彻底弄懂js中的this指向js 中的 this 指向十分重要 了解 js 中 this 指向是每一个学习 js 的人必学的知识点 今天没事 正好总结了 js 中 this 的常见用法 喜欢的可以看看 全局环境中 this 指向 window 有以下几种常用常见 直接打印 console log this window function 声明函数 functionbar console log this bar wind

js 中的 this 指向十分重要,了解 js 中 this 指向是每一个学习js的人必学的知识点,今天没事,正好总结了 js 中 this 的常见用法,喜欢的可以看看:

1. 全局作用域或者普通函数中 this 指向全局对象 window。

//直接打印 console.log(this) //window //function声明函数 function bar () { 
   console.log(this)} bar() //window //function声明函数赋给变量 var bar = function () { 
   console.log(this)} bar() //window //自执行函数 (function () { 
   console.log(this)})(); //window 

2. 方法调用中谁调用 this 指向谁

//对象方法调用 var person = { 
    run: function () { 
   console.log(this)} } person.run() // person //事件绑定 var btn = document.querySelector("button") btn.onclick = function () { 
    console.log(this) // btn } //事件监听 var btn = document.querySelector("button") btn.addEventListener('click', function () { 
    console.log(this) //btn }) //jquery的ajax $.ajax({ 
    self: this, type: "get", url: url, async: true, success: function (res) { 
    console.log(this) // this指向传入$.ajxa()中的对象 console.log(self) // window } }); //这里说明以下,将代码简写为$.ajax(obj) ,this指向obj,在obj中this指向window,因为在在success方法中,独享obj调用自己,所以this指向obj 

3. 在构造函数或者构造函数原型对象中 this 指向构造函数的实例

//不使用new指向window function Person(name) { 
    console.log(this) // window this.name = name; } Person('inwe') //使用new function Person(name) { 
    this.name = name console.log(this) //people self = this } var people = new Person('iwen') console.log(self === people) //true //这里new改变了this指向,将this由window指向Person的实例对象people 

4. 箭头函数中指向外层作用域的 this

var obj = { 
    foo() { 
    console.log(this); }, bar: () => { 
    console.log(this); } } obj.foo() // {foo: ƒ, bar: ƒ} obj.bar() // window 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221713.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:27
下一篇 2026年3月17日 下午5:27


相关推荐

  • Html 表格

    Html 表格

    2022年1月2日
    41
  • webpack版本选择_webpack官网

    webpack版本选择_webpack官网1.先确认node和npm有没有安装node-vnpm-v2.创建一个打包文件夹mkdirtest3.全局安装webpack和webpack-cli使用npm安装会卡在一个地方,因此这里我使用cnpm,没有安装的话,可以百度看看怎么安装cnpminstallwebpack@3.39.2i-gcnpminstallwebpack-cli@3.3.7-gcnpminstallwebpack-dev-server@3.8.0-g4.在test文件夹下面安装对应版

    2022年8月10日
    10
  • 关于sources.list和apt-get [转载]

    关于sources.list和apt-get [转载]

    2021年11月16日
    52
  • 好的图片压缩网站

    好的图片压缩网站转:第一:Tinypng地址:https://tinypng.com/这款工具我实在是太喜欢了,经常用到,最大限度的做到对画质无损的进行压缩这个工具他同时支持对Jpg和Png的压缩。Tinypng也支持Wordpress和magento的使用。Wordpress插件下载:https://wordpress.org/plugins/tiny-compress-images/…

    2022年6月18日
    39
  • 二进制与十进制的相互转换

    二进制与十进制的相互转换博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):二进制如何转十进制,十进制如何转二进制十进制转二进制转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;1、正整数转成二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。也就是说,将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,…

    2022年10月17日
    5
  • AI文章检测工具 怎么判断是不是AI写的

    AI文章检测工具 怎么判断是不是AI写的

    2026年3月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号