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

做网站优化需要做什么大连网站建设意动科技公司

做网站优化需要做什么,大连网站建设意动科技公司,网站建设及安全管理,wordpress syntaxhighlighter前面的话 this机制与函数调用有关#xff0c;而作用域则与函数定义有关。有没有什么是可以将this机制和作用域联系起来的呢#xff1f;本文将介绍ES6新增的内容——箭头函数 痛点 对于闭包的痛点在于#xff0c;闭包的this默认绑定到window对象#xff0c;但又常常需要访问…前面的话 this机制与函数调用有关而作用域则与函数定义有关。有没有什么是可以将this机制和作用域联系起来的呢本文将介绍ES6新增的内容——箭头函数 痛点 对于闭包的痛点在于闭包的this默认绑定到window对象但又常常需要访问嵌套函数的this所以常常在嵌套函数中使用var that this然后在闭包中使用that替代this使用作用域查找的方法来找到嵌套函数的this值  var a 0; function foo(){ function test(){ console.log(this.a); } return test; }; var obj { a : 2, foo:foo } obj.foo()();//0 var a 0; function foo(){ var that this; function test(){ console.log(that.a); } return test; }; var obj { a : 2, foo:foo } obj.foo()();//2 解决 而箭头函数的出现就可以很好的解决该问题。箭头函数根据当前的词法作用域而不是根据this机制顺序来决定this所以箭头函数会继承外层函数调用的this绑定而无论this绑定到什么 var test () { console.log(this.a); } //形式上等价于 var test function(){ console.log(this.a); } //实质上等价于 function fn(){ var that this; var test function(){ console.log(that.a); } } var a 0; function foo(){ var test () { console.log(this.a); } return test; }; var obj { a : 2, foo:foo } obj.foo()();//2 基本用法 ES6允许使用“箭头”()定义函数一般称为胖箭头 var f v v; console.log(f(1));//1 //等同于 var f function(v) { return v; }; console.log(f(1));//1 如果箭头函数不需要参数或需要多个参数就使用一个圆括号代表参数部分 var f () 5; // 等同于 var f function () { return 5 }; var sum (num1, num2) num1 num2; // 等同于 var sum function(num1, num2) { return num1 num2; }; 如果箭头函数的代码块部分多于一条语句就要使用大括号将它们括起来 var sum (num1, num2) { var restult num1 num2; return result; } 由于大括号被解释为代码块所以如果箭头函数直接返回一个对象必须在对象外面加上括号 var getTempItem id ({ id: id, name: Temp }); 回调函数 箭头函数最常用于回调函数如事件处理器或定时器中 function foo() { setTimeout(() { console.log( this.a ); },100); } var obj { a: 2 }; foo.call( obj ); // 2 //等价于 function foo() { var that this; setTimeout( function(){ console.log( that.a ); }, 100 ); } var obj { a: 2 }; foo.call( obj ); // 2 注意事项 【1】this在箭头函数中被绑定4种绑定规则中的无论哪种都无法改变其绑定 var a 0; function foo(){ var test () { console.log(this.a); } return test; }; var obj1 { a : 1, foo:foo } var obj2 { a : 2, foo:foo } obj1.foo()();//1 var bar foo.call(obj1); //由于上一条语句已经把this绑定到obj1上且无法修改。所以本条语句call(obj2)无效返回的值是obj1.a的值1 bar.call(obj2);//1 【2】箭头函数不可以当作构造函数也就是不可以使用new命令否则会报错 var foo () {return 1;} foo();//1 var obj new foo();//Uncaught TypeError: foo is not a constructor 【3】箭头函数中不存在arguments对象 var foo () { console.log(arguments);//Uncaught ReferenceError: arguments is not defined return 1; } foo(); 最后 虽然箭头函数可以把作用域和this机制联系起来但是却容易混淆使代码难以维护。应该在作用域和this机制中二选一否则它们就真的汇成一锅粥了。或者只使用词法作用域或者只使用this机制必要时使用bind()。尽量避免使用thatthis和箭头函数 this机制系列介绍完了。最重要的还是第一篇this机制的绑定原则第二篇this机制的优先级属于要点而本篇则是拓展部分。如有不妥之处欢迎交流 以上 更多专业前端知识请上 【猿2048】www.mk2048.com
http://wiki.neutronadmin.com/news/395337/

相关文章:

  • 深圳网站制作公司招聘景安安装wordpress提示错误
  • 株洲高端网站建设福州做网站需要多少钱
  • 手机网站建设运营方案口碑营销的主要手段有哪些
  • 淘宝建设网站首页怎样怎样优化网站建设
  • 做摄影和后期的兼职网站网页设计怎样做
  • 网站建设的现状四川省住房和建设厅官方网站
  • 成都网站开发价格江东怎样优化seo
  • 网站开发5000农业做的好的网站
  • 建设德国网站如何制定会员营销方案
  • 公司网站哪家做的好建设商务网站作用
  • 网站标题的设置方法石景山鲁谷燃气公司电话
  • 网站正在建设中 文案建设档案员证书查询网站
  • 网站优化站外链接怎么做石家庄最新今天的消息
  • c2c商城网站建设费用做网站很烧钱
  • 南宁 做网站企业网站建设实训体会
  • 建设工程信息网官网新网站建立网站心得
  • 和田网站制作企业网站建设及推广研究
  • 宜春网站推广优化网站内链建设方法
  • 镇江专业网站建设制作做网站的业务分析
  • 郑州做品牌网站好的公司wordpress改手机布局
  • 做seo网站 公司安徽省建设厅网站巅川建设有限公司
  • 龙岩网站设计招聘网做网站有啥软件
  • 安徽工程建设造价信息网站天元建设集团有限公司企业号
  • 重庆网站建设大概需要多少钱中国建设银行贵州分行网站
  • 企业网站建设经验手机端网站建设的费用清单
  • mvc电子商务网站开发昌大建设三公司
  • 哈尔滨seo优化专注seo交流
  • 做网站购买服务器多少钱最近时事新闻热点
  • 怎么自助建站wordpress链接样式设置
  • 琪觅公司网站开发泉州比较好的网站开发建设公司