reactnative中…操作符的主要用途

管振緯發表於2017-02-15

延展操作符(Spread operator)

這個 … 操作符(也被叫做延展操作符 - spread operator)已經被 ES6 陣列 支援。它允許傳遞陣列或者類陣列直接做為函式的引數而不用通過apply。

var people=[`Wayou`,`John`,`Sherlock`];
//sayHello函式本來接收三個單獨的引數人妖,人二和人三
function sayHello(people1,people2,people3){
	console.log(`Hello ${people1},${people2},${people3}`);
}
//但是我們將一個陣列以擴充引數的形式傳遞,它能很好地對映到每個單獨的引數
sayHello(...people);//輸出:Hello Wayou,John,Sherlock 
//而在以前,如果需要傳遞陣列當引數,我們需要使用函式的apply方法
sayHello.apply(null,people);//輸出:Hello Wayou,John,Sherlock

而在 React中,延展操作符一般用於屬性的批量賦值上。在JSX中,可以使用…運算子,表示將一個物件的鍵值對與ReactElement的props屬性合併。

var props = {};
  props.foo = x;
  props.bar = y;
  var component = <Component {...props} />;
  
//等價於
var props = {};
  props.foo = x;
  props.bar = y;
  var component = <Component foo={x} bar={y} />;


相關文章