HTML5技术

es6笔记4^_^function - webNick(2)

字号+ 作者:H5之家 来源:H5之家 2017-01-19 14:00 我要评论( )

function says(say){setTimeout( function (){console.log( this.type + ' says ' + say)}.bind( this), 1000 )} 但现在我们有了箭头函数,就不需要这么麻烦了: class Animal2 {constructor(){ this.type = 'anima

function says(say){ setTimeout(function(){ console.log(this.type + ' says ' + say) }.bind(this), 1000) }

  但现在我们有了箭头函数,就不需要这么麻烦了:

class Animal2 { constructor(){ this.type = 'animal' } says(say){ setTimeout( () => {console.log(this); console.log(this.type + ' says ' + say) }, 1000) } } var animal2 = new Animal2(); animal2.says('hi') ; //animal says hi

箭头函数有几个使用注意点。
1.函数体内的this对象,即绑定定义时所在的对象,而不是使用时所在的对象。
  并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,它的this是继承外面的,因此内部的this就是外层代码块的this。
2.不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
3.不可以使用arguments对象,该对象在函数体内不存在。
上面三点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。
   此篇终,待续……


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • es6笔记3^_^object - webNick

    es6笔记3^_^object - webNick

    2017-01-18 11:00

  • es6笔记2^_^array - webNick

    es6笔记2^_^array - webNick

    2017-01-16 13:01

  • 读书笔记:《HTML5开发手册》Web表单 - 绿岛之北

    读书笔记:《HTML5开发手册》Web表单 - 绿岛之北

    2017-01-14 15:04

  • 读书笔记:《HTML5开发手册》--现有元素的变化 - 绿岛之北

    读书笔记:《HTML5开发手册》--现有元素的变化 - 绿岛之北

    2017-01-14 10:02

网友点评