隨手小記(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

相關文章
相關標籤/搜索