随手小记(es6)

在学习前辈阮一峰大神写的《ECMAScript入门》一书的过程当中,第九章中讲到对象扩展时,第一条我就有点看不懂react

ES6容许直接写入变量和函数,做为对象的属性和方法。这样的书写更加简洁。

var foo = 'bar';
var baz = {foo};
baz // {foo: "bar"}

// 等同于
var baz = {foo: foo};

当时我就没想太多,就这样过去了,结果在学习react时碰到了一个东西,研究以后让我理解了上面的代码:es6

在react的Lifting State Up中,它的例子用es6的语法写了一个类,继承React.Component,在构造函数中给出了状态,而后本身重写了一个控制函数:函数

 handleFahrenheitChange(value) {
    this.setState({scale: 'f', value});
  }

当时就好奇这个setState里面的参数究竟是什么,研究了一下明白了,请看第一段代码:声明变量foo='bar',而后声明一个变量baz引用一个对象,这个对象里面只有一个foo属性,没有值,这就是es6的新增语法,标题是《属性的简洁表示法》,真是当时看不懂,看懂了以为本身好傻这都看不懂。学习

  总结:es6的属性里,对象中若是给了属性名却没有给属性对应的值,则根据做用域链(以前我写过的一篇博客)查找该属性的同名变量,并将其值赋给该对象的该属性;this

相关文章
相关标签/搜索