2016-08-23 39 views
-1

使用lodash分配方法可以肯定,我可以做我可以在產權制度,使用lodash分配方法

_.assign(self, { 
      inputContext: createAddonInputContext(), 
      currentEmployee: _.first(self.inputContext.employeeList), 
     }); 

currentEmployee屬性值計算取決於inputContext被已經分配。我的問題是,這會始終起作用,還是可能在某些環境中中斷,即首先分配currentEmployee? 換句話說,當值被評估時,屬性在源對象文本中出現的順序是否保證了相同的順序?我知道,當我們通過javascript對象進行迭代時,順序並不確定。因此我的問題。

+1

事實上,這將永遠不會工作。對象文字及其屬性甚至在調用「assign」之前進行評估。 – Bergi

回答

2

currentEmploye屬性值計算取決於inputContext已被分配。

然後,你將需要單獨爲它們分配:

self.inputContext = createAddonInputContext(); 
self.currentEmployee = _.first(self.inputContext.employeeList); 

將這個總是工作,也可以在某些環境下即突破時currentEmployee將首先被分配?

從未作品,它將在所有環境打破。在執行assign的調用並分配給self之前,將評估對象文字及其兩個屬性值。

屬性在源對象文本中出現的順序是否保證在值被評估時的順序相同?

是的,事實上,對象屬性值總是按照源順序進行評估,但這並不重要,在創建整個對象之前,值爲are inaccessible as properties

相關問題