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

网站体验分享广州做网站设计

网站体验分享,广州做网站设计,微商城开发用华网天下北京,怎么访问域名网站在JavaScript中this变量是一个令人难以摸清的关键字#xff0c;this可谓是非常强大#xff0c;充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余。 对于this变量最要的是能够理清this所引用的对象到底是哪一个#xff0c;也许很多资料上都有自…在JavaScript中this变量是一个令人难以摸清的关键字this可谓是非常强大充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余。 对于this变量最要的是能够理清this所引用的对象到底是哪一个也许很多资料上都有自己的解释但有些概念讲的偏繁杂。而我的理解是首先分析this所在的函数是当做哪个对象的方法调用的则该对象就是this所引用的对象。 示例一、   var obj {};obj.x 100;obj.y function(){ alert( this.x ); };obj.y(); //弹出 100 这段代码非常容易理解当执行 obj.y() 时函数是作为对象obj的方法调用的因此函数体内的this指向的是obj对象所以会弹出100。 示例二、   代码 var checkThis function(){ alert( this.x); };var x this is a property of window;var obj {};obj.x 100;obj.y function(){ alert( this.x ); };obj.y(); //弹出 100checkThis(); //弹出 this is a property of window   这里为什么会弹出 this is a property of window可能有些让人迷惑。在JavaScript的变量作用域里有一条规则“全局变量都是window对象的属性”。当执行 checkThis() 时相当于 window.checkThis()因此此时checkThis函数体内的this关键字的指向变成了window对象而又因为window对象又一个x属性 this is a property of window,所以会弹出 this is a property of window。 上面的两个示例都是比较容易理解的因为只要判断出当前函数是作为哪个对象的方法调用被哪个对象调用的就可以很容易的判断出当前this变量的指向。   this.x 与 apply()、call() 通过call和apply可以重新定义函数的执行环境即this的指向这对于一些应用当中是十分常用的。 示例三call() 代码 function changeStyle( type , value ){this.style[ type ] value;}var one document.getElementById( one ); changeStyle.call( one , fontSize , 100px );changeStyle(fontSize , 300px); //出现错误因为此时changeStyle中this引用的是window对象而window并无style属性。 注意changeStyle.call() 中有三个参数第一个参数用于指定该函数将被哪个对象所调用。这里指定了one也就意味着changeStyle函数将被one调用因此函数体内 this指向是one对象。而第二个和第三个参数对应的是changeStyle函数里的type和value两个形参。最总我们看到的效果是Dom元素 one的字体变成了20px。 示例四apply() 代码 function changeStyle( type , value ){this.style[ type ] value;}var one document.getElementById( one ); changeStyle.apply( one , [fontSize , 100px ]);changeStyle(fontSize , 300px); //出现错误原因同示例三 apply的用法和call大致相同只有一点区别apply只接受两个参数第一个参数和call相同第二个参数必须是一个数组数组中的元素对应的就是函数的形参。   无意义诡异的this用处 示例五 代码 var obj { x : 100, y : function(){ setTimeout(function(){ alert(this.x); } //这里的this指向的是window对象并不是我们期待的obj,所以会弹出undefined , 2000); }};obj.y(); 如何达到预期的效果 var obj { x : 100, y : function(){var that this; setTimeout(function(){ alert(that.x); } , 2000); }};obj.y(); //弹出100 事件监听函数中的this var one document.getElementById( one );one.onclick function(){ alert( this.innerHTML ); //this指向的是one元素这点十分简单..};  转载于:https://www.cnblogs.com/jenry/archive/2010/12/08/1900572.html
http://www.zqtcl.cn/news/126711/

相关文章:

  • 沃尔沃公司网站建设公司建网站费用
  • 新网站怎么发外链公司做网站 要准备哪些素材
  • 建站域名英雄联盟网页制作素材
  • 手机网站 微信网站 区别布吉做网站
  • 网站建设层级图微信小程序怎么制作网页
  • 服务器上的网站怎么做301中小企业网站制作报价
  • 做网站需要用什么技术制作静态网站制作
  • drupal网站开发盐城网站建设费用
  • 采票网站刷流水做任务网站建设方案及预算
  • 传奇网站模块下载天蝎做网站建网站
  • 收录网站的二级域名wordpress虚拟币接口
  • 论坛建站烟台工程建设信息网站
  • 南京有哪些做网站的公司网站开发兼职团队
  • 网站建设优化外包免费客户管理软件哪个好用
  • 网上购物最便宜的网站微信官方网站服务中心
  • 充电网站建设方案个体工商户查询
  • 所有网站302跳转百度wordpress最大上传2g
  • 南京网站制作网页seo推广百度百科
  • 陵水网站建设哪家好建设培训考试服务网站
  • h5视频网站模板中国十大企业培训机构排名
  • 强的网站建设明细报价表网站建设推广新业务
  • 哪里有免费做网站wordpress 在文章前面加序号
  • 263企业邮箱登录入口首页seo公司哪家
  • 哈尔滨建设银行网站岳阳建设网站
  • 中山网页网站设计模板自己做的网站怎么让别人看见
  • 建设装饰网站出口跨境电商平台
  • 陕西网站建设公司排名WordPress图片生成文章
  • t恤定制网站wordpress 分类 seo
  • 万网网站空间多少钱一年做哪些网站流量最大
  • seo网站优化服务网站开发电脑