回答
問題是precedence,你需要的括號:
function log(msg, color) {
var el = document.createElement('p');
el.innerText = msg;
document.getElementById('log').appendChild(el);
color && (el.style.color = color);
}
&&
比=
等更高的優先級無你最終試圖分配一個表達式(例如,它有效地讀取(color && el.style.color) = color;
),這當然是你不能做的。
謝謝,我想補充一點:人們也可以把這個任務放到一個閉包中來解決這個問題,這並不是首選(過度使用閉包會導致調用層次機制)。 –
@EliranMalka:大聲笑,是的,你可以這樣做。相當昂貴的括號形式。或者當然,你可以使用'if',因爲你不再保存這兩個字符... ;-) –
不錯,我想我更喜歡舊的'如果'...有人必須閱讀這有點:)謝謝一堆! –
我同意馬克·萊納斯,雖然你也可以在你的代碼重寫
color && (el.style.color = color)
- 1. 左側的分配無效
- 2. 無效左手分配
- 3. Javascript console說:無效的左側分配?
- 4. 無效分配左側,JavaScript的
- 5. Jquery ajax jsonp:無效的左側分配
- 6. 無效的屬性分配?
- 7. 的Javascript無效分配左手邊
- 8. 無效分配左手邊使用$這
- 9. 未捕獲的ReferenceError:無效的左手側分配中的if語句
- 10. Heroku-apps中的錯誤:無效的左側分配
- 11. 多左手分配
- 12. Rails的JavaScript錯誤在生產中:「在分配無效左側」
- 13. 如何解決無效的左側分配?
- 14. 分配在R與左側公式
- 15. 「無效分配左側」錯誤:firefox還是chrome?
- 16. 無效的屬性分配:「錨」是隻讀屬性
- 17. 確定ECMAScript分配表達式的左側或右側
- 18. 未捕獲的ReferenceError:在分配(匿名函數)無效的左側ColdFusion的
- 19. 「無效的左側在分配」當從Facebook的API接收響應
- 20. 或者運營商分配左側
- 21. 左側分配功能如何工作?
- 22. 的Python:索引的左側和右側的分配
- 23. 分配到的NSArray強式incompitable無效
- 24. Collection.Add:錯誤的參數數量或無效的屬性分配
- 25. CSS樣式分配
- 26. 無效的陣列分配
- 27. 無效的指針分配
- 28. 分配的領域/屬性
- 29. Javascript ReferenceError:無效的轉讓似乎左手?有效的左側
- 30. Jquery的AJAX無效分配左側[打破此錯誤]數據:「StudentClass」 = StudentClass,
最後一行似乎是創建問題http://jsfiddle.net/dhirajbodicherla/98SCK/ – Dhiraj
我知道這一點,謝謝 –
請使用'if(color)'而不是'color &&'。把事情縮短很好,但如果降低可讀性甚至引入問題則不會。編輯:+1因爲你意識到'如果'你自己更好! – ThiefMaster