当前位置:首页 > 日记 > 正文

Javascript功能实现结合和班6事件绑定功能

Javascript功能实现结合和班6事件绑定功能
本文阐述了如何在Javascript实现了6类函数绑定和事件绑定功能。分享给你供你参考,如下:

功能的结合

箭头功能可以绑定对象,大大降低了这个对象的显式绑定(电话,申请,绑定)。然而,箭头功能并不适用于所有的情况,所以ES7提出函数绑定运营商来取代电话,申请和绑定电话。尽管语法建议ES7,巴别塔的转码器一直支持。

函数绑定操作符是一个并行的双冒号(::),双冒号的左边是一个对象,右边是一个函数,操作符自动将左边的对象作为上下文(或这个对象)绑定到右边的函数。
酒吧;
等效
Bar.bind(食品);
酒吧…参数);
等效
Bar.apply(Foo,参数);
const hasownproperty = object.prototype.hasownproperty;
功能也不尽相同(obj,关键){
返回的对象::hasownproperty(关键);
}

如果双冒号的左边是空的,右边是一个对象的方法,它等于将方法绑定到对象。
VaR方法=目标::obj.foo;
等效
VaR方法=::obj.foo;
让日志=::console.log;
等效
var日志= console.log.bind(控制台);

由于双冒号操作符或原始对象的返回,可以使用链式样式。
进口{地图,takeWhile,foreach }从iterlib ;
getplayers()
::地图(x)=(x.character)
::takeWhile(X = > x.strength > 100)
::foreach(x = console.log(x));
两个案例
{找到,HTML } =卫国明;
document.queryselectorall(div.myclass )
查找(p)
::HTML(哈哈哈);

类中的事件绑定

总结

6提供了一个类,它提供了许多帮助模块。事件绑定到类为了使代码清晰,第二是使用类的变量和方法。然而,由于事件的回调函数不是类的实例对象触发的这个变量的类不能在事件的回调函数访问。此外,我们不希望事件的回调函数被暴露在外,因此调用者可以直接调用。

简言之,我们希望:

1。事件回调函数应该能够访问类的这个变量。

2。事件回调函数不能直接调用。

如何访问这个类

方案1:将类作为本地变量保存

这种引用是动态变化的,但是局部变量的描述是清晰的,函数定义的局部变量可以在整个函数中使用,因此,我们可以使用这个=来保存类的这个变量。
类{
绑定 /方法
BindEvent(){
让那个=这个;
this.button1.on(听到咔哒声,功能(e){
This.addClass(); / /这是指元素
that.dosomething(); / /指向这类的
})
}
DoSomething(){
事件处理程序
}
/ /分拆事件
UnBindEvent(){
this.button1.off();
}
}

这种方法是有效的只有当使用jQuery,因为jQuery绑定事件不需要提供一个回调函数,并直接关好,但原生js需要提供回调函数,这是有原因的,因为相同的元素相同的事件可以绑定多个回调,所以你需要指出释放。

方案二:使用绑定()来改变这个方向

与A级,MouseMove事件被添加到一个,和下面的代码是根据要求写:
类{
添加事件
AddEvent(){
Document.addEventListener('mousemove,移动鼠标,假);
}
添加事件
removeevent(){
Document.removeEventListener('mousemove,移动鼠标,假);
}
}
事件回调函数
功能onmousemove(事件){
console.log(本); / / #文件
}

然而,这是让这不到上课的方式,这对移动鼠标指向文件。因为事件被添加到文档,文档是由自然事件和通过鼠标移动时触发,所以这在移动鼠标指向文件。

正确的做法是使用bind()函数在鼠标移动到这个方向的变化和移动事件回调到课外。
类{
添加事件
AddEvent(){
Document.addEventListener('mousemove ',onmousemove.bind(这),假);
}
添加事件
removeevent(){
Document.removeEventListener('mousemove ',onmousemove.bind(这),假);
}
}
事件回调函数
功能onmousemove(事件){
console.log(本);
}

但仍然存在一个问题,事件不会被移除!因为每一this.bind()调用返回一个新的功能,所以:
Document.addEventListener('mousemove ',onmousemove.bind(这),假);


Document.removeEventListener('mousemove ',onmousemove.bind(这),假);

二者的第二个参数是不同的。

正确的做法是将绑定()的结果保存到变量中:
类{
构造函数(){
这个_onmousemove = onmousemove.bind(本); / /这里
}
添加事件
AddEvent(){
Document.addEventListener('mousemove ',这个_onmousemove,假);
}
添加事件
removeevent(){
Document.removeEventListener('mousemove ',这个_onmousemove,假);
}
}
事件回调函数
功能onmousemove(事件){
console.log(本);
}

如何定义私有事件回调函数

在java中,不想接触外面的世界的方法可以被定义为私有方法,但不提供私人ES6方法只能在某些方面模拟。然而,事件回调函数是比较特殊的,因为该事件已成为除定义删除,使额外的麻烦。但仍然有一种:

使用符号变量定义
const _onmousemove =符号(_onmousemove );
类{
构造函数(){
这_onmousemove } = { onmousemove.bind(本);
}
添加事件
AddEvent(){
Document.addEventListener('mousemove ',这_onmousemove { },假);
}
添加事件
removeevent(){
Document.removeEventListener('mousemove ',这_onmousemove { },假);
}
}
事件回调函数
功能onmousemove(事件){
console.log(本);
}

符号(_onmousemove )将有一个独特的价值,这个价值只生成一个对象被创建时,所以没有办法知道对方的价值,所以在写代码时,不能调用使用该值命名的方法,如一个私有方法的定义。

更多相关内容可以看到特殊站:ecmascript6(6),Javascript教程总结

希望这篇文章会帮助大家以ECMAscript为基础的编程。

相关文章

的upromise0.exe-upromise0过程是

的upromise0.exe-upromise0过程是

文件,过程,电脑软件,exe,综述:简要介绍了upromise0.exe - upromise0过程 进程文件:upromise0或upromise0.exe 进程名称:Upromise大学储蓄 过程类别:安全风险的过程 英文描述: upromise0.exe是由Upromise大学储蓄计划相关的过程。 中文参考: 对…

如何激活win7的系统管理帐户

如何激活win7的系统管理帐户

系统管理,帐户,激活,电脑软件,点评:Win7系统不能登录到管理帐户登录时。登录时如何登录管理帐户,然后介绍管理帐户的激活方法。 win7系统不能选择登录管理帐号登录,这是因为账户默认是关闭的,所以我们可以选择如何登陆管理帐户,所以我们拥有所有…

以iPhone性能改造iPad 苹果力图重

以iPhone性能改造iPad 苹果力图重

以iPhone性能改造iPad 苹果力图重振平板电脑,美元,升级,平板电脑,应用程序,下滑,屏幕,功能,速度,苹果对iPad进行了2015年以来最广泛的升级,为重振这个近几年来销量下滑的产品而做出又一次努力。苹果高管于周二在纽约布鲁克林推出了新款iPad Pro,分为1…

MySQL中负载数据记录问题的解决

MySQL中负载数据记录问题的解决

数据,负载,电脑软件,MySQL,问题是: 表人员有两个字段:id和名称 在persons.txt内容(文本文档中的每一行场分区表): 1布什 2卡特 3布什 使用数据加载到表的人persons.txt导入数据到人表MySQL命令行下。 导入后,看的人表的数据一致的persons.txt.…

如何卸载IE8的XP系统关闭iexplore

如何卸载IE8的XP系统关闭iexplore

系统,卸载,电脑软件,XP,iexplore,点评:使用IE8浏览器的缓解情况已经好转,但一段时间后,有广大网友发现许多失败。现在,我们将利用这些故障解决IE8浏览器,所以我们可以提供解决方案,帮助您更好地在网上冲浪。 1。该网页显示异常。 当使用IE8的Win…

b612咔叽给gif加字的详细步骤

b612咔叽给gif加字的详细步骤

b612咔叽给gif加字的详细步骤,b612咔叽,给gif加字,b612咔叽怎么给gif加字呢?下文介绍b612咔叽给gif加字的详细步骤,有需要的可以来了解了解哦。b612咔叽给gif加字的详细步骤1、其实大家想要给自己制作的gif加字的话,就需要利用b612咔叽里的贴…

Excel2003基础教程:样式列表,快速线

Excel2003基础教程:样式列表,快速线

列表,基础教程,样式,快速,电脑软件,当excel中输入大量文本时,我们通常将单元格格式化为实现自动文本传输的效果。但是,当这种情况频繁发生时,使用格式化是不够的。这是非常复杂和低效的。如果有一种快速的方法,很容易在单元格中实现文本自动换…

什么bkupexec.exe过程有一个文件是

什么bkupexec.exe过程有一个文件是

文件,过程,有一个,电脑软件,bkupexec,点评:bkupexec.exe是Veritas公司的备份软件相关程序 进程文件:bkupexec或bkupexec.exe 进程名称:bkupexec 过程类别:安全风险的过程 英文描述: bkupexec.exe是VERITAS Backup Exec的重要组成部分。这个程…

绝密字快速输入具体词组

绝密字快速输入具体词组

输入,词组,绝密,快速,电脑软件,核心提示:我用Word2000 / XP剪贴板功能来实现一个特定的短语来实现快速的一次性输入,准确和一致的目的。文字快速输入特定的短语的秘密方法,我们使用Word2000 / XP文件编辑,如专业术语、单位… 我利用Word2000 / …

对oodag.exe-oodag的作用是什么

对oodag.exe-oodag的作用是什么

作用,电脑软件,oodag,exe,点评:oodag.exe是OO的磁盘碎片整理程序 进程文件:oodag或oodag.exe 进程名称:面向对象的碎片整理 过程类别:安全风险的过程 英文描述: oodag.exe是OO的主要执行碎片整理。OO Defrag是,面向对象,它也被称为对与错。 中文…

excel中设置单元格颜色的两种实用

excel中设置单元格颜色的两种实用

方法,设置,两种,单元格,颜色,核心提示:默认设置单元格颜色,既不彩色也不单元格模式,用户可以根据需要设置不同单元格的颜色和底纹。1。使用格式化工具填充颜色。使用格式工具栏上的填充颜色按钮更改选定单元格区域的颜色。 设置单元格颜色 默…

苹果关闭iOS 12.0.1验证通道:iPhone

苹果关闭iOS 12.0.1验证通道:iPhone

苹果关闭iOS 12.0.1验证通道:iPhone/iPad只能留在iOS 12.1,验证,通道,降级,聊天,越狱,功能,支持,正式版,11月28日消息,苹果今天关闭了对iOS 12.0.1的验证通道,该系统版本在10月初发布。这意味着,从iOS 12.1降级已无可能。此前,苹果已经先后停止对iOS 11.…