首页 > 其他分享 >this指向性问题

this指向性问题

时间:2023-06-28 11:26:59浏览次数:17  
标签:调用 函数 指向性 绑定 问题 对象 显式 new

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

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

在编程中,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值保持一致。

 

标签:调用,函数,指向性,绑定,问题,对象,显式,new
From: https://www.cnblogs.com/yang--666/p/17510879.html

相关文章

  • 以创造性解决核心问题赢得家庭护理市场竞争
    01.居家护理服务市场现状、趋势和挑战随着全球人口老龄化的趋势日益明显,养老及居家护理服务市场正逐渐成为社会关注的焦点。在这一背景下,养老居家护理行业的发展和创新显得尤为重要。本篇文章将对养老及居家护理服务市场的现状进行分析,并探讨行业发展趋势和挑战。养老及居家护......
  • Transaction rolled back because it has been marked as rollback-only大概问题及解
    Transactionrolledbackbecauseithasbeenmarkedasrollback-only问题:前几天遇到一个问题,代码没有抛出我想要的带自定义提示消息的异常,却报了个这个,去搜了一下,大概原因如下:因为我在controller的方法上写了@Transactional注解,里边调用的service的方法上也写了@Transactiona......
  • 编程初学者入门5_键盘输入5个人的身高(米),求他们的平均身高(米)。(C的没问题,试着用Java写
    写在前面此系列博客为牛客网编程初学者入门题目小结,题目很基础不常用的知识容易遗忘,为了边复习c语言和学习Java,后面系列博客将采用c、c++、Java双语言版记录现在位置(72/140),虽然我走的很慢,但我仍在前进~题目描述从键盘输入5个人的身高(米),求他们的平均身高(米)。输入描述:一行,连续输......
  • 编程初学者入门6_简单分支问题+Java在OJ中实现多组输入sc.hasNextInt()函数
    题目KiKi想知道这学期他的学习情况,BoBo老师告诉他这学期挂的科目累计的学分,根据所挂学分,判断KiKi学习情况,10分以上:很危险(Danger++),4~9分:危险(Danger),0~3:Good。输入描述:一行,一个整数(0~30),表示KiKi挂的科目累计的学分。输出描述:一行,根据输入的挂科学分,输出相应学习情况(Danger+......
  • 强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟
    强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解1.核心词汇深度确定性策略梯度(deepdeterministicpolicygradient,DDPG):在连续控制领域经典的强化学习算法,是深度Q网络在处定性”表示其输出的是一个确定的动作,......
  • 强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟
    强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解1.核心词汇深度确定性策略梯度(deepdeterministicpolicygradient,DDPG):在连续控制领域经典的强化学习算法,是深度Q网络在处定性”表示其输出的是一个确定的动作,可......
  • Unable to load '@webpack-cli/serve' command 报错问题
    [webpack-cli]Unabletoload'@webpack-cli/serve'command[webpack-cli]TypeError:options.forEachisnotafunctionatWebpackCLI.makeCommand(E:\vue-workspace\change-row-color\node_modules\webpack-cli\lib\webpack-cli.js:173:21)atS......
  • 如何解决跨域问题
    方法一在类上增加@CrossOrigin注解方法二在Gateway网关的application.yml配置文件中增加以下配置spring:cloud:gateway:globalcors:cors-configurations:'[/**]':allowedOrigins:"*"allowedMethods:"*"......
  • 【ubuntu22.04】设置了共享文件夹但是在虚拟机中找不到/mnt/hgfs文件夹的问题
    【ubuntu22.04】设置了共享文件夹但是在虚拟机中找不到/mnt/hgfs文件夹的问题问题描述vmware设置了共享文件夹,并且设置文件夹权限后,在虚拟机中找不到共享文件夹解决步骤:1、设置共享文件夹首先vmware-workstation需要安装Vmwaretools工具,我这里已经安装了,然后在Vmware菜单......
  • 浅谈类 k 短路问题
    u群题题意:\(n\)个数,对于所有大小在\([L,R]\)内的子集求和并排序,求前\(k\)小子集的信息。排序,记数组为\(a_{1,\cdots,n}\)。先考虑\(L=R\)的情况。最小的子集一定是\(a_{1,\cdots,L}\),第二小则是将\(a_L\)改为\(a_{L+1}\),推广到更一般的情况——我们以\([1,L]\)......