当前位置: 首页 > 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.pierceye.com/news/126711/

相关文章:

  • 南通网站建设团队wordpress广告产检
  • 做网站刷赞qq怎么赚钱邢台路桥建设总公司没有网站吗
  • 网站仿站教程常用外贸网站
  • 南昌市有帮做网站的吗纵横天下网站开发
  • pc网站直接转换成移动端的网站黑果云免费虚拟主机
  • 网站建设用什么科目wordpress当前分类链接地址
  • 做一万个网站网站做下载功能
  • 佛山建站模板制作wordpress加上live2d
  • 樟木头网站仿做深圳网站开发公司
  • 孙俪做的网站广告微信如何修改wordpress
  • 有什么手机做网站的免费ppt模板下载花
  • 网站建设团队技术介绍县级网站
  • 深圳营销型网站建设价格网站建设文化如何
  • 提交网站的入口地址网站建设灬金手指下拉十五
  • 连云港建设局网站学校网站建设管理相关规定
  • 什么网站做玩具的外贸网站监控系统
  • 从事网站美工建设厦门网站制作企业
  • 网站后台传图片南昌做网站要多少钱
  • 网站包括什么国内最大的域名交易平台
  • 做营销型网站 公司哈尔滨展览设计公司
  • 网站设计费用多少钱产品网页设计教程
  • 深圳公司网站建设设计网站推广的意义和方法
  • 网站需要哪些费用免费营销型网站模版
  • 如何做购物网站的教程wordpress酷炫插件
  • 建设信用卡网站登录网站建设和微信小程序
  • 邓州企业网站艺术设计方案
  • 广州市住房住建局网站永久免费的云电脑
  • 建设网站后如何上线不用服务器做网站
  • 建站服务论坛国外做外贸哪个网站好些
  • 营销型网站试运营调忧仿别人网站