2013-11-27 53 views

回答

2

你在考慮下面的代碼?

Template.leaderboard.selected_name = function() { 
    var player = Players.findOne(Session.get("selected_player")); 
    return player && player.name; 
} 

儘管&& -operator是一個布爾運算符,但它不返回布爾值。 「正確的方式」當然是return player.name,但是如果Players.find返回null(沒有選定的id的玩家存在),這個代碼在執行時會崩潰。爲了避免這種情況的發生,使用了&&操作員的小黑客,它確保player.name僅在player不是falsye(而不是null)時纔會執行。操作員的結果是右側,因此會返回播放器的名稱(或null,它的左側,如果它是null)。

+0

謝謝你的解釋先生 –