this指向性问题

这篇具有很好参考价值的文章主要介绍了this指向性问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

this的查找规则会逐层往上查找,最终位全局window

优先级问题:显式绑定(显式绑定与new绑定没有可比性)new绑定>隐式绑定>默认绑定

this指向性问题

在编程中,this 是一个关键字,代表当前对象或者函数的执行环境。this 的指向性问题是指在不同的情况下,this 指向的对象不同,从而影响代码的行为。

在 JavaScript 中,this 的值可以通过四种不同的调用方式来确定其指向性:

  1. 作为函数调用:当 this 在普通函数中使用时,它将指向全局对象(浏览器中为 window,Node.js 中为 global),默认绑定但是在严格模式下在独立函数种调用this,那么this所指向的位undefined

    独立函数:函数没有绑定到某个对象上进行调用

  2. 作为方法调用:当一个函数作为对象的一个属性被调用时,this 将会指向该对象也被叫做隐式绑定

  3. 使用 call() 或 apply() 调用:这两个方法可以改变函数的作用域(执行环境),并显式地指定函数执行时的 this 绑定对象也被叫做显式绑定

    apply函数在this中的使用方式apply("apply",["zhangsan",11,2]):它能够传递两个参数(第一个参数:绑定this 第二个参数:是一个数组用来传入额外的实参)
    call函数在this中的使用方式(call,("call","lisi",12,22)):它可以传递很多参数(第一个参数:绑定this,其余的可以作为参数传递到函数中)
  4. 作为构造函数调用:在使用 new 关键字实例化一个对象时,this 将会指向新创建的对象使用new绑定

同时需要注意的是,在箭头函数中,this 的值与所在上下文中的一样,即与函数定义时的this值保持一致。

 文章来源地址https://www.toymoban.com/news/detail-504283.html

到了这里,关于this指向性问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS中this的指向

    this永远指向一个对象 this的指向完全取决于函数调用的位置 JavaScript支持运行环境动态切换,this的指向是动态的 全局上下文(Global Context) 在全局执行环境中(在任何函数体外部),this都是指向全局对象,在浏览器中,window对象即是全局对象。 函数上下文(Function Context)

    2024年02月07日
    浏览(39)
  • 箭头函数的 this 指向哪里?

    箭头函数不同于传统 JS 中的函数,箭头函数并没有属于自己的 this,他所谓的 this 是捕获其所在上下文的 this 值,作为自己的 this 值,并且由于没有属于自己的 this,所以是不会被 new 调用的,这个所谓的 this 也不会被改变。可以用 Babel 理解一下箭头函数:

    2023年04月26日
    浏览(95)
  • JavaScript全解析——this指向

    本系列内容为JS全解析,为千锋教育资深前端老师独家创作 致力于为大家讲解清晰JavaScript相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【点个关注】持续追更~ this 是一个,是一个使用在作用域内的 作用域分为 全局作用域和局部作

    2024年02月03日
    浏览(43)
  • react关于类组件this指向

    文章目录 前言: 绑定方式: 一、手动绑定 this: 二、使用箭头函数: 常见问题: 总结: 在 React 中,类组件中 this 的指向和普通的 JavaScript 类相同,指向当前实例对象。但是,在事件处理函数中,this 的指向会有所不同。 当我们使用类组件的时候,事件处理函数中的 this 默认

    2024年02月08日
    浏览(38)
  • JS 能改变this指向的方法

    JavaScript中的this非常重要,它用于引用当前函数所属的对象。但是,有时候我们需要在不同的上下文中使用相同的函数,这就需要改变this指向。在JavaScript中,有几种方法可以实现这一目标。 call方法是JS中最基本的改变this指向的方法之一。它允许您将一个函数作为另一

    2024年02月08日
    浏览(39)
  • 【ES6】Class中this指向

    先上代码: 正常运行的代码: 输出: 单独调用函数printName: 输出: debugger调试一下,看看什么情况,调试代码: 调试界面,this显示undefined,在单独调用时,this的指向是undefined。在单独调用的场景下,要如何才能解决该问题呢?下面给出两种种比较简单的解决方法。 1、在

    2024年02月09日
    浏览(32)
  • axios回调函数中this指向已经改变的解决方法

    在axios回调函数中,this指向的是回调函数本身的作用域,而不是Vue实例的作用域。因此,你不能直接通过this访问Vue实例中的数据。为了解决这个问题,有几种方法: 1.使用箭头函数,箭头函数会绑定当前作用域的this,而不会创建新的this。 例如: 2.在Vue实例中保存this,使用

    2024年02月07日
    浏览(45)
  • Js:apply/call/bind、作用域/闭包、this指向(普通,箭头,JS/Vue的this)

    共同点: apply()、call() 和 bind() 方法 三者作用都是 改变this指向。 接收的第一个参数都是this要指向的对象 区别: apply只有两个参数,第二个参数为数组; call和bind传参相同,多个参数依次传入的; call和apply都是对函数进行直接调用(立即执行),而bind方法不会立即调用函数

    2023年04月08日
    浏览(92)
  • 前端面试题-js-new关键字-this指向-js事件流-防抖节流

    1.创建一个简单的空对象 2.原型的绑定,确定对象O的原型链 3.绑定this对象为O,传入参数;执行Person构造函数,进行属性和方法的赋值操作 4.返回结果 普通函数的this指向 函数的this指向有一个基本的原则,谁调用的函数,函数的this就指向谁,否则指向全局 箭头函数的this指向

    2024年01月25日
    浏览(48)
  • 探究IP路由的工作原理与路由表查找规则

    首先可以看下思维导图,以便更好的理解接下来的内容。 路由器是网络中负责将数据报文在不同IP网段之间进行转发的设备。路由则是指导路由器如何选择合适的路径来进行数据转发的路径信息。 在实现IP连通性之前,确保沿途的每台路由器上都有到达目的网段的路由信息。

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包