bind更改this指向问题

给粒子物理萌新的Geant4保姆级入门:从看懂B1示例代码到跑通第一个模拟 本文为粒子物理初学者提供Geant4的保姆级入门指南,从解析B1示例代码到跑通第一个模拟。详细介绍了环境准备、代码解析、可视化系统实战及扩展模拟的方法,帮助新手快速掌握Geant4的基本概念和工具包使用。 阅读详情

1.bind用法1
场景:小程序里,在test方法的请求接口then里面调用test2函数,此时test2里面的this指向为test的内容,并不指向组件内容
解决:this.test2().bind(this)()

test(){
let self=this
   api.recordCreate(data).then((res) => {
       if (res.success) {
          //处理业务
          self.test2()//错误,这样方法test2里的this,并不是指向vue组件,而且指向方法test
          self.test2().bind(self)(res.data);//正确,用bind更改指向
       }
   }).catch((err) => {
        console.log(err);
   });
},
test2(data){
console.log(this) //
}

2.bind用法2
场景: 创建了一个类,类里有一个参数需要绑定方法,页面使用时要用bind绑定,直接看代码
解决:this.websocket.onmessageFn = this.onmessageFn.bind(this)
类:(附赠websocket封装)

class MyWebScoket {
  constructor(socketUrl) {
    // super(socketUrl);
    this.onopenFn = null
    this.oncloseFn = null
    this.onmessageFn = null
    this.onerrorFn = null
    this.socketUrl = socketUrl
    this.socket = null
    this.init()
  }

  init() {
    let self = this
    self.socket = new WebSocket(self.socketUrl);
    self.socket.onopen = function (event) {
      if (self.onopenFn) {
        self.onopenFn(timeStep, event, )
      }
    }
    self.socket.onmessage = function (event) {
      setTimeout(() => {
        if (self.onmessageFn) {
          self.onmessageFn(event.data)
        }
      }, 3000)

    }
    self.socket.onerror = function (event) {
      console.log(event, 'websocket通信发生错误')
      if (self.onerrorFn) {
        self.onerrorFn(event)
      }
    }
    self.socket.onclose = function (event) {
      if (self.oncloseFn) {
        self.oncloseFn(event)
      }
    }
  }
  close() {
    this.socket.close()
  }
}

export default MyWebScoket

组件使用时:

addWebSocket(){
   let webScoketUrl=''//websocket地址
   this.websocket = new MyWebScoket(webScoketUrl);
   this.websocket.onopenFn = this.onopenFn();//错误绑定
   this.websocket.onmessageFn = this.onmessageFn.bind(this);//正确绑定
},
onopenFn(){
 console.log(this)//这里的this 指向类
},
onmessageFn(data){
 console.log(this)////这里的this 正常指向vue组件
 //业务处理
}
一文读懂「Chain of Thought,CoT」思维链 Chain-of-Thought(CoT)是一种改进的Prompt技术,目的在于提升大模型LLMs在复杂推理任务上的表现,对于复杂问题尤其是复杂的数学题大模型很难直接给出正确答案。如算术推理(arithmetic reasoning)、常识推理(commonsense reasoning)、符号推理(symbolic reasoning)。COT通过要求模型在输出最终答案之前,显式输出中间逐步的推理步骤这一方法来增强大模型的算数、常识和推理能力。简单,但有效。2022 年,在 Google 发布的论文。 阅读详情

相关推荐

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

js:bind(this)这是什么写法

bind bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数. 关键词: bind 是创建了一个新的函数。 例一 <body> <button type="button" id="butto...

分享前端开发工程师的一些日常生活、前端知识点、职业发展、对一些问题的看法、感悟等等 1万+

通俗讲解清楚光线追踪中的蒙特卡洛积分

彻底讲解光线追踪中的蒙特卡洛积分

qq_37366618的博客 1243

函数名调用bind(this)的作用

文章目录1 问题2 bind(this)的作用3 总结 1 问题 看不太明白bind(this)的写法 Router.prototype.refresh = function () { console.log('触发一次 hashchange,hash 值为', location.hash); this.currentUrl = location.hash.slice(1) || '/'; this.routes[this.currentUrl]();

兰星_thk&try的博客 1747

哨兵2号遥感影像解析全流程:步骤、算法与AI应用详解

未来,多源数据融合与边缘计算技术的应用将进一步拓展遥感解析的边界。波段合成:选择10m分辨率波段(如B2、B3、B4、B8)进行Layer Stacking,生成多光谱影像。| 分类与识别 | Scikit-Learn、PyTorch | SVM、CNN、K-Means聚类 | 地块分类、目标检测 || 数据预处理 | SNAP、Sen2Cor | 大气校正、几何校正 | L2A产品生成、格式转换 || 波段融合 | ENVI、GDAL | Layer Stacking、重采样 | 多光谱影像合成 |

zhz5214的博客 2712

基于 OpenCVSharp 的晶圆缺口自动检测与旋正方案

在半导体制造过程中,晶圆(Wafer)需要精确定位才能进行后续加工。每个晶圆边缘都有一个特定的缺口,这个缺口就像 "箭头" 一样,帮助机器确定晶圆的方向。我们的任务就是通过摄像头拍摄的图片,自动找到这个缺口的位置,计算出需要旋转多少角度才能让晶圆对准正确方向。简单来说,这个技术就像给晶圆 "找方向",确保它在生产线上始终保持正确的姿态。

品质生活,极致编程。 1211

ES6中bind(this)用法说明

在使用 React 中的 Class extends写法,如果 onClick 绑定一个方法就需要 bind(this),如果使用React.createClass 方法就不需要 解析: React.createClass 是ES5 的写法默认绑定了 bind 写法 在 ES6 中新增了class,绑定的方法需要绑定 this,如果是箭头函数就不需要绑定 this 示例: 第一种写法: _hand...

前端小狮的博客 9505

OpenClaw一人公司落地案例:本地商家营销智能体月赚3万的秘密

角色:本地商家营销专家## 核心目标为商家生成高转化率的抖音营销策略,最大化 ROI。## 输入数据- 商家名称: "XX奶茶店"- 过去 30 天视频播放量: 12,000- 客单价: 28 元- 竞品平均播放量: 15,000- 市场趋势: rising## 策略生成规则1. **内容类型**:根据客单价推荐- < 30 元:美食探店 + 优惠券- > 30 元:场景化故事 + 会员权益2. **发布时间**:根据历史数据- 18:00-20:00 高峰期。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 543

bind(this) 的使用

为什么使用 bind(this) ?    当点击事件触发的函数里有使用 this 的时候,就需要使用 bind(this),不然 this 是 null,如果没绑定this应该是全局window。    &lt;div className="save" onClick={this.handleClick.bind(this)}&gt;Save&lt;/div&gt;参考文章:    https:...

youyou_LIN的博客 4364

学Simulink--基于风力发电系统的场景实例:海上风电场在复杂海况下的动态响应仿真

本实例将创建一个针对海上风电场在复杂海况下的动态响应模型。该模型不仅考虑了不同风速条件的影响,还引入了波浪和水流对风机塔架及基础结构的影响。通过仿真验证系统的有效性,并探索最佳控制参数设置以提高整体性能和稳定性。本教程展示了如何在Simulink中实现一个海上风电场在复杂海况下的动态响应仿真模型,并分析其性能。通过这种方式,我们不仅可以验证所提出的技术手段在提高海上风电场稳定性和效率方面的有效性,还能进一步探索优化参数以适应特定的应用场景。

xiaoheshang_123的博客 168

PCB铺铜技巧如何铺铜经验总结

铺铜是指在PCB电气层添加整块的铜皮;铺铜包括电源层铺铜,地层铺铜和信号走线层空闲区域铺铜;铺铜是PCB设计的一个重要的环节。

fydar的博客 1万+

【JavaScript】this关键字:绑定this的方法

JavaScript 提供了call、apply、bind这三个方法,来切换/固定this的指向。

weixin_45980065的博客 1126

Allegro如何设置走线自动删除重复走线操作指导

Allegro如何设置走线是自动删除重复走线操作指导在PCB布线的时候,点到点需要重复走一段线的时候,希望原来的线段自动被删除,Allegro设计的时候支持这个操作如下图,重复走中间的线段的时候,希望下方的走线自动删除具体操作如下This section is describe what the function allegro have ,helpfully could let user know more about allegroAllegro Design and Analysis includes

weixin_54787054的博客 4499

JavaScript:更改this指向——call,apply,bind的用法

在上篇文章中已经记录了,在JS中关于this关键字的指向问题,那么本文就来记录一下,如何去更改this指向,以及ES6的箭头函数! 上篇文章:JavaScript:一文搞懂this关键字指向_Jay丶千珏的博客-优快云博客 目录 提出问题 1. call,apply,bind——无额外参数传递 1.1 call无额外参数传递用法 1.2apply无额外参数传递用法 1.3 bind无额外参数传递用法 小结 2.call,...

本以为成功很简单,没想到活成普通人都需拼尽全力! 593

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

更快的了解this指向,如何改变this指向

this指向 this指向 1. 普通函数调用,此时 this 指向 window 2. 构造函数调用, 此时 this 指向 实例对象 3. 对象方法调用, 此时 this 指向 该方法所属的对象 4. 通过事件绑定的方法, 此时 this 指向 绑定事件的对象 5. 定时器函数, 此时 this 指向 window 6. 箭头函数中的this指向,箭头函数中没有自己的this,它的this是继承而来,默认指向在定义它时所处的对象(宿主对象)。 7. 当函数被当作监听事件处理函数时,其this

weixin_48211138的博客 164

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【JS知识点】——JS中的this指向问题

JS中this指向,call和apply和bind

m0_50785976的博客 592

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

每日面试题(6)-浅析this的指向问题

每日面试题(六)-浅析this的指向问题

CY_WINT的博客 264

学习Javascript之模拟实现bind

前言 本文1703字,阅读大约需要5分钟。 总括: 本文模拟实现了bind方法的更改this,传参和绑定函数作为构造函数调用时this失效的特性。 参考文档:Function.prototype.bind() 公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍 愿每次回忆,对生活都不感到负疚。 正文 bind和call,apply的作用类似,都是用来更改函数的this值的,...

前端小渣 380

作用域和改变this指向

作用域 1 什么是作用域 作用于就是在运行代码中的某些特定部分中的变量,函数和对象的可访问性,换句话说作用域决定了代码区块中变量和其他的资源的可见性。 function outFun2() { var inVariable = "内层变量2"; } outFun2();//要先执行这个函数,否则根本不知道里面是啥 console.log(inVariable); // Uncaught ReferenceError: inVariable is not defined 我们也可以理解为作用域就是

weixin_46031274的博客 235

原生JS笔记——第十一天(构造函数)

构造函数 构造函数的目的: 利用构造函数来创造对象 为什么要使用构造函数? 利用构造函数,可以一次创建多个对象 之前的创建对象的方式一次只能创建一个对象。 构造函数创建对象的方式也就是将一次创建一个对象的方式封装成一个函数,多次调用函数就可以创建多个重复的对象。 注意,这个函数与不同函数不同,此函数内部封装的是对象而非普通代码。 什么是构造函数? 构造函数就是把我们对象里面的一些相同的属性和方法抽象出来封装到函数里面,它是一个特殊的函数,和new运算符一起使用。 声明函数 function 构造函数名(形

qq_43465434的博客 252

React之state总结

1.理解 1)可包含多个key-value 2)更新state来更新页面显示 2.注意 1)render中this为组件实例对象 2)组件方法中this为underfined,解决? a.bind() b.箭头函数 3)更改state用setState()

wanggang182007的博客 125

【原型对象和原型链 (特别特别重要!!!!)&this指针&javascript代码错误处理&类的继承与实例化】

☀️举个例子: ☀️上述的例子中的一段代码,可以看到后面的输出是true,可以知道原型对象共享方法。 图形解释,使理解更加深刻: 输出为true所以说,p1和p2对象它两共享了一个方法,因为原型对象共享方法,他俩的值一样,地址也一样,所以相等。☀️举个例子: 图解如下,使理解更加透彻: (1)构造方法名.prototype.constructor ☀️举个例子: (2)对象名.constructor ☀️举个例子: (3)引申:object是个基类,所有类是从它继承而来 (1)获取原型对象的原型对象:

橙子的博客 360

更改this指向的方法及其区别

今天给朋友们带来更改this指向的三种方法,以及它们的区别: 一:call用法 window.color = 'red'; document.color = 'yellow'; var s1 = {color: 'blue'}; function changeColor () { console.log(this.color); } changeColor.call() //不传参数默认指向wi...

吴小迪的博客 4万+

this指向及改变this指向的方法

原先总结过this指向问题,但看了大佬们写的之后,觉得自己遗漏了很多点,所以,结合大佬们的,重写一遍 一、函数的调用方式决定了 this 的指向不同: 普通函数调用,此时 this 指向 window function fn() { console.log(this); // window } fn(); // window.fn...

李天下 5万+

更改this指向的三种方法

改变this指向的3钟方法

qq_31151699的博客 8136

更改this指向用call、apply、bind就对了

文章目录一.什么时候需要更改this指向二.call、apply异同三.apply、call常见的一些用法1.通过apply拼接两个数组2.通过apply、call获取数组的最大/最小值(这个挺骚的)3.代理console.log方法四.bind五.总结 一.什么时候需要更改this指向 首先举个例子: let apple = {`在这里插入代码片` name: 'apple', say: function () { conso

qq_38870665的博客 367
上一篇: async/await捕获接口异常catch、promise
下一篇: 把多个大括号{}中的内容,包括大括号并放入数组中
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值