当前位置: 首页 > news >正文

手机网站图片自适应代码做网站定金一般多少

手机网站图片自适应代码,做网站定金一般多少,京津冀协同发展10周年,客户推广公司概述 ES6提供了类#xff0c;给模块化带来了很大的帮助。在类里面绑定事件#xff0c;一来是为了使得代码结构清晰#xff0c;二来是为了可以使用类的变量和方法。但是#xff0c;由于事件的回调函数并不是由类的实例对象触发#xff0c;所以#xff0c;事件回调函数里面…概述 ES6提供了类给模块化带来了很大的帮助。在类里面绑定事件一来是为了使得代码结构清晰二来是为了可以使用类的变量和方法。但是由于事件的回调函数并不是由类的实例对象触发所以事件回调函数里面并不能访问类的this变量。另外我们也不希望事件回调函数对外暴露免得调用者直接调用。 简单来说我们就希望 1. 事件回调函数要能访问类的this变量 2. 事件回调函数不能直接调用 如何访问类的this 方案一将类的this保存成一个局部变量 this的指代是动态改变的但是局部变量的指代却是明确的并且函数定义的局部变量在整个函数里面都可以用。所以我们可以使用let that this保存类的this变量。 class A{//绑定事件的方法bindEvent(){let that this;this.button1.on(click,function(e){this.addClass(on); //this指代所点的元素that.doSomething(); //that指向类的this})}doSomething(){//事件处理函数}//解绑事件unBindEvent(){this.button1.off();}}这种方法只在使用jquery时有用因为jquery解绑事件不需要提供回调函数直接off就可以了。但是原生js需要提供回调函数也有它的道理因为同一个元素的同一种事件可以绑定多个回调函数所以你需要指出释放哪一个。 方案二使用bind()改变this的指向 有类A,在A中要添加mousemove事件根据需求写出下面代码: class A{//添加事件addEvent(){document.addEventListener( mousemove, onMouseMove, false );}//添加事件removeEvent(){document.removeEventListener( mousemove, onMouseMove , false );}}//事件回调函数中 function onMouseMove(event){console.log(this); //#document } 但是这样获取不到类的this。onMouseMove的this将会指向document。因为事件是添加到document上的所以自然是由document触发事件并调用onMouseMove进行处理所以onMouseMove中的this指向document。 比较正确的做法是使用bind()函数改变onMouseMove中this的指向同时将事件回调函数移到类外面 class A{//添加事件addEvent(){document.addEventListener( mousemove, onMouseMove.bind(this), false );}//添加事件removeEvent(){document.removeEventListener( mousemove, onMouseMove.bind(this) , false );}}//事件回调函数中 function onMouseMove(event){console.log(this); }但是这样仍然存在问题事件移除不掉了因为this.bind()每次调用都会返回一个新的函数所以 document.addEventListener( mousemove, onMouseMove.bind(this), false ); 和 document.removeEventListener( mousemove, onMouseMove.bind(this), false ); 两者的第二个参数并不相同。 正确的做法是 将bind()的结果保存到一个变量中 class A{constructor(){this._onMouseMove onMouseMove.bind(this); //看这里}//添加事件addEvent(){document.addEventListener( mousemove, this._onMouseMove , false );}//添加事件removeEvent(){document.removeEventListener( mousemove, this._onMouseMove , false );}}//事件回调函数中 function onMouseMove(event){console.log(this); } 如何定义私有的事件回调函数 在Java中不想对外暴露的方法可以定义为私有方法但是ES6并没有提供私有方法只能通过一些办法模拟。但是事件回调函数比较特别因为事件除了定义还要移除这会带来额外的麻烦。但还是有办法的 使用Symbol变量来定义 const _onMouseMove Symbol(_onMouseMove); class A{constructor(){this[_onMouseMove] onMouseMove.bind(this);}//添加事件addEvent(){document.addEventListener( mousemove, this[_onMouseMove] , false );}//添加事件removeEvent(){document.removeEventListener( mousemove, this[_onMouseMove] , false );}}//事件回调函数中 function onMouseMove(event){console.log(this); } Symbol(_onMouseMove)会产生一个唯一的值这个值是在对象创建的时候才生成的所以调用者没有办法在写代码时知道这个值的所以就无法调用使用这个值命名的方法了这样就定义了一个私有方法。 参考链接
http://www.pierceye.com/news/349428/

相关文章:

  • 天气网站建设wordpress yasaer
  • 无忧网络网站建设响应式网页设计技术有哪些
  • 非常好的网站建设公司上海如何批量建站
  • 珠海市官网网站建设品牌深圳创业补贴去哪里申请
  • 建立传媒公司网站wordpress 农场主题
  • 如何用ps做网站导航条劳保用品 技术支持 东莞网站建设
  • 网站数据库迁移背景图网站
  • 1 网站建设的目标是什么密码管理系统admin
  • 深圳专业企业网站制作哪家好wordpress ality
  • 网站开发毕业设计摘要范文国际空间站
  • 网站做区块链然后往里面投钱ecms dedecms phpcms wordpress
  • 网站设计原型图wap712c
  • 敦煌手机网站设计wordpress搭建像册
  • 电子商务网站建设实践课题背景企业网站管理系统设计报告
  • 有做数学题的网站吗建筑必看六个网站
  • 沧州网站建设建站系统企业网站建设选题背景
  • 大学网站设计推广 高端网站建设
  • 个人网站赚钱网站认证收费
  • 成都免费招聘网站建设网站和推广
  • 曲靖企业网站html5 app开发工具
  • 邵东建设公司网站哪家好怎样做公司自己的官方网站
  • 建设网站有哪些内容wordpress发布心情
  • 怎样找回网站备案密码有趣的wordpress插件
  • 国外网站空间购买wordpress直接
  • 企业网站建设报价方案模板网站建设前期规划方案
  • 做网站美工排版怎样进入公众号平台
  • 福州网站定制设计wordpress多说插件
  • 电脑网站打不开什么原因wordpress api 中文
  • 自己怎么免费做网站网页重庆专业平台推广公司
  • 英文网站建设电话咨询网站推广平台有哪些