首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Javascript:如何让Control在方法中发送自己

在JavaScript中,要让一个控件在方法中发送自己,可以使用以下方法:

  1. 使用箭头函数:箭头函数可以自动绑定当前上下文的this,因此可以在方法中访问控件本身。
代码语言:javascript
复制
class MyControl extends React.Component {
  handleClick = () => {
    console.log(this); // 这里的this指向MyControl组件实例
  }

  render() {
    return<button onClick={this.handleClick}>点击我</button>;
  }
}
  1. 使用bind方法:在构造函数中使用bind方法将this绑定到方法中。
代码语言:javascript
复制
class MyControl extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    console.log(this); // 这里的this指向MyControl组件实例
  }

  render() {
    return<button onClick={this.handleClick}>点击我</button>;
  }
}
  1. 使用匿名函数:在onClick事件处理器中使用匿名函数,并在其中调用方法。
代码语言:javascript
复制
class MyControl extends React.Component {
  handleClick() {
    console.log(this); // 这里的this指向MyControl组件实例
  }

  render() {
    return<button onClick={() => this.handleClick()}>点击我</button>;
  }
}

在这些方法中,this都指向了MyControl组件实例,因此可以在方法中访问控件本身。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript 如何克隆对象?

name="王大冶"; console.log (name,name2); // 王大冶 前端小智 引用值 但是,如果我们对引用类型的值进行相同的操作,则我们对一个变量所做的任何更改也将反映在另一个变量,...若要克隆对象,请使用 Object.assign() 方法,该方法会将一个或多个源对象的所有可枚举属性的值复制到目标对象,但是此方法仅对对象的一个浅拷贝。...我们可以使用什么方法复制对象的深层副本?...此方法对简单对象有效,但如果对象属性是函数时无效。...函数内部,将创建一个局部变量克隆,这是一个空对象,其中将从起始对象克隆的每个属性都将添加到该对象。 具体思路: 如果该属性不是对象,则将其简单地克隆并添加到新的克隆对象

4.6K20
  • 【译】如何避免JavaScript阻塞DOM

    原文链接:https://www.sitepoint.com/avoiding-dom-blocking/ 浏览器和在诸如Node.js的运行时环境JavaScript程序是运行在单线程上的。...更多相关内容,参考"Flow Control in Modern JS"。...所以这个"入侵者"大多数浏览器中会卡住不动,GIF动画会间断性的暂停。较慢的设备上可能会显示“脚本未响应”的警告。 这是一个复杂的例子,但它演示了前端性能是如何受到基础操作影响的。...而且因为所有的消息都作为字符串发送,这允许传递JSON格式的对象,却不允许传递DOM节点。...硬件加速动画 大多数现代浏览器不会阻止硬件加速的CSS动画,这些动画运行在自己的层上。 默认设置下,前面的例子“入侵者”通过改变left-margin来移动。

    2.7K10

    4种JavaScript交换变量的方法

    在编码面试,可能会问您“如何在没有临时变量的情况下交换2个变量?”。我很高兴知道执行变量交换的多种方法本文中,您将了解大约4种交换方式(2种使用额外的内存,而2种不使用额外的内存)。...1、解构赋值 解构赋值语法(ES2015的功能)使您可以将数组的项提取到变量。...尽管这种方法不使用临时变量,但有很大的局限性。 首先,您只能交换整数。 其次,第一步a = a + b进行加法时要注意数字溢出(总和必须小于Number.MAX_SAFE_INTEGER)。...提醒一下,这是 XOR 真值表: a b a ^ b 0 0 0 1 1 0 0 1 1 1 0 1 JavaScript,按位 XOR 运算符 n1 ^ n2 对n1和n2数字的每一位执行 XOR...5、结论 JavaScript提供了很多交换变量的好方法,无论有没有额外的内存。 我建议使用的第一种方法通过应用解构赋值[a,b] = [b,a]交换变量。这是一种简短而富有表现力的方法

    3.1K30

    JavaScript 替换所有指定字符 3 种方法

    JS 最新的提案 String.prototype.replaceAll() ,它将replaceAll()方法用于字符串。...必须启用正则表达式上的全局标志,才能使replace()方法替换模式出现的所有内容,我们可以这样做: 正则表达式文字,将g附加到标志部分:/search/g。...虽然正则表达式替换了所有出现的字符串,但在我看来,这种方法过于繁琐。 2.1 字符串的正则表达式 当在运行时确定搜索字符串时,使用正则表达式方法不方便。...3.replaceAll() 方法 最后,新的提案String.prototype.replaceAll()(第3阶段)将replaceAll()方法引入到 JavaScript 的字符串。...但是,JavaScript 很久一段时间没有提供这种方法

    28.2K30

    如何使用LinkFinderJavaScript文件查找网络节点

    关于LinkFinder LinkFinder是一款功能强大的Python脚本,该工具的帮助下,广大研究人员可以轻松JavaScript文件中发现和扫描网络节点及其相关参数。...这样一来,渗透测试人员和漏洞猎人将能够快速测试的目标网站伤收集新的隐藏节点了。...例如output.html -r --regex 使用正则表达式过滤节点,例如^/api/ -d --domain 分析整个域时使用,可以切换并枚举所有找到的JS文件 -b --burp 当Burp结果文件包含多个...JS文件时,可以切换使用 -c --cookies 向请求添加Cookie -h --help 显示工具帮助信息和退出 工具运行样例 在线上JavaScript文件查找网络节点,并将结果输出到...JavaScript文件,搜索以/api/开头的网络节点,并将结果存储到results.html文件: python linkfinder.py -i 'Desktop/*.js' -r ^/api/

    38850

    如何Task非线程池线程执行?

    但是有的操作并不适合使用线程池,比如我们一个ASP.NET Core应用承载了一些需要长时间执行的后台操作,由于线程池被用来处理HTTP请求,如果这些后台操作也使用线程池来调度,就会造成相互影响。...我们通过如下的方式修改了上面这段程序,调用StartNew方法时指定了这个选项。...由于LongRunning操作经常会涉及IO操作,所以我们执行方法经常会写成异步的形式。如下所示的代码,我们将Do方法替换成DoAsync,将2秒的自旋等待替换成Task.Delay。...选项,但是StartNew方法只是采用这种模式执行Func这个委托对象而已,而这个委托遇到await的时候就返回了。...调用的StartNew方法,我们调用这个DoAsync方法创建了6个Task,这些Task交给创建的DedicatedThreadTaskScheduler进行调度。

    78520

    JavaScript ,对象是拥有属性和方法的数据

    JavaScript 的所有事物都是对象:字符串、数字、数组、日期,等等。 JavaScript ,对象是拥有属性和方法的数据。...字符串对象: var txt = "Hello"; 属性: txt.length=5 方法: txt.indexOf() txt.replace() txt.search() 面向对象的语言中,使用...JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。...全局变量:函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。全局变量会在页面关闭后被删除。...向未声明的 JavaScript 变量来分配值:如果把值赋给尚未声明的变量,该变量将被自动作为全局变量声明,即使它在函数内执行。

    3.7K10

    【说站】javascriptArray.join()方法如何使用

    javascriptArray.join()方法如何使用 说明 1、将数组的所有元素转换为字符串并连接在一起,并返回最终生成的字符串。 2、可以指定可选的字符串在生成的文字串中分割数组的元素。...Arrray.join()方法是String.split()方法的逆向操作,后者将文字串分成几个块组成一个数组。... "123" var b = new Array(10); // 长度为10的空数组 b.join('-');           // => "---------":9个连字号组成的字符串 以上就是javascript...Array.join()方法的使用,希望对大家有所帮助。...更多Javascript学习指路:Javascript 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏

    71220

    Go 如何结构体不可比较?

    Go 结构体可以比较吗? Go 结构体可以比较吗?...如何结构体不可比较?那么所有结构体都可以比较吗?显然不是,如果都可以比较,那么 reflect.DeepEqual() 就没有存在的必要了。...这与结构体内存对齐有关,我《Go 中空结构体惯用法,我帮你总结全了!》 一文也有提及。NOTE: 对于 _ [0]func() 不占用内存空间的验证,就交给你自己去实验了。...总结好了, Go 如何结构体不可比较这个小 Tips 就分享给大家了,还是比较有意思的。...专门来介绍这个 Tip,并且我中文社区也找到了鸟窝老师《Go语言编程技巧》的译文 Tip #50 使结构体不可比较。这也印证了我的猜测,_ [0]func() Go 社区是推荐用法。

    7310

    做技术,如何使自己重复性业务持续提升?

    1 如何定义工作的意义 这是一个老生常谈的问题,有人说工作的意义是生活、生存,有人说工作的意义在于自己实现自己的价值,其实都对,简单来说工作就是为了过上自己想要的生活并且实现自己的价值。...但是如果人持续的做某件事的时候,通常,人的大脑就会排斥这种重复,追求未知的世界,这种行为简单、技术含量低的事情上发挥的更为明显。...代码思维虽然在营销、创业方面不适用,但是技术人发展初期非常的有用,它会你始终保持一颗好奇心,然而促使进步最好的良药就是那一份好奇心。...在工作,遇到问题,首先去搜索引擎查阅资料,然后解决问题,问题解决完后,不要沉浸在喜悦和骄傲,应该去探究发生这个问题的根本原因,以及如何规避这个问题,这在以后再做这件事的时候会助你行云流水,每次都吸收一点新的知识...,或者是开发一些自己常用的插件,自己的工作可以以更少的时间产出更多的产品,毕竟框架再多,也都是换汤不换药。

    61150

    知识和技能学习如何后学者跟随我们

    对于我们这些想要在知识领域有所建树的人来说,如何有效地传授知识和技能,使后学者能够跟随我们,成为一个值得关注的问题。这篇文章将详细探讨如何通过多种途径和策略,后学者愿意、并且能够跟随我们。...确立目标和方向 首先,我们需要明确自己要教授的知识或技能是什么,以及这些知识或技能能为后学者带来什么价值。只有当我们清晰地知道自己的目标和方向时,才能更准确地传达给后学者。...这包括确定教学内容的先后顺序、使用什么样的教学方法和工具,以及如何评估后学者的学习效果。 实例 例如,我可以首先教授编程的基础概念,然后逐步介绍更复杂的算法和数据结构。...实例 比如,我可以建立一个交流群或者论坛,后学者可以在里面自由地提问和分享经验。同时,我也可以定期进行在线或者线下的答疑和交流活动,以增强大家的互动性。...希望这篇文章能给大家带来一些启发和帮助,也欢迎大家评论区分享自己的经验和看法。

    16730

    如何数据值PBI智能化显示 - 效果

    矩阵数据值的智能化显示 用户希望矩阵的数据值可以根据自己的大小自行判断并给出紧凑的显示,如下: 大部分的产品的年销售额都是几十万规模,用英文规范显示,就是多少 K ,而总计则超过了百万,则应该显示为...如果你认为这种方法只是对矩阵文本的处理,那就错了,因为除了矩阵外,我们还需要对图表(如:柱形图)的显示做智能化处理,如下: 向下钻取后,如下: 如果切换到中文模式,如下: 这样一来,矩阵和图表的数据值都可以得到正确合理的显示...更有甚者,有极致要求的情况下,要求图表(如:柱形图)的显示使用统一尺度,如下: 这样就可以图表得到正确的显示。...需求总结 这里给出了一个非常实用而强大复杂的需求,显然已经被完美实现了,下文我们将继续讲解如何解决这里面的各种问题。...你可以自己思考本问题你可以解决吗?我们将会用一系列文章来说清楚这个复杂的问题如何被解决以及这背后蕴含了怎么样的思想。

    3.9K30

    程序员如何在当今就业市场自己脱颖而出

    这要么是因为开发人员忙于完成当前的项目,要么是因为他们未能发现提高自己的机会。 在当今市场开发者能赚多少钱? 美国,开发人员的平均工资每年约为10万美元。这里的“平均”其实考虑到了很多方面。...开发者如何在当前的就业市场脱颖而出 现在我们已经回答了一些常见的问题,下面让我们来看看你可以采取的行动清单。 1.开始流媒体 互联网上最新趋势之一是实时流媒体。...不过,作为开发人员,你需要投资自己自己每一天都能进步提高。 这个行业正在朝着更好的解决方案迈进。...这会你时刻做好工作的准备,并确保作为开发人员的你能够获得更多的收益。 投资自己身上才是最好的投资。 4.工作于开源项目 工作于开源项目能否能让开发者成长?毫无疑问是的。...你可以通过很多方法用开源项目赚取额外的收入。例如,你可以为公司定制开源ERP解决方案并获得报酬。或者,你可以查看这篇着重介绍如何用开源贡献赚钱的文章。

    37410
    领券