顧名思義,就是我們可以将多個屬性合并為一個屬性。這樣在顯示的時候就是整體了,并且其中任何一個屬性發生改變,這個屬性也都會随之發生改變進而更新視圖,而這些隻需要使用computed函數就可以實作,比如下面的代碼我們将firstName和lastName合并為fullName屬性,并呈現:
這裡我們通過傳遞一個函數給computed,并且該函數僅僅傳回由firstName和lastName組成的完整姓名,這樣我們就輕松的将兩個屬性組合了。其中computed的第二個參數傳遞的是this,主要是用來指定第一個參數的環境上下文。
上面僅僅隻能用于顯示,如果我們還要修改這個組合屬性,那麼就需要将上面的寫法給寫成如下的方式:
我們将傳遞給computed的參數改成了一個對象,并且寫了read、write、owner屬性,其中read用來讀取該組合屬性,而write用來指派,是以該函數會有一個value參數,最後的owner跟computed的第二個參數是一樣的,主要用來指定read和write函數執行的上下文環境。讀者這個時候可以随意的修改文本中的值,會發現前面的值也會跟着變動,這些都是ko帶給我們的快捷。
當然組合屬性也不一定非要由多個屬性組合,我們也可以将多個屬性作為參數,然後通過ajax傳遞到服務端,進而擷取屬性值然後顯示,比如jquery中的$.getJSON方法。