回答
问题是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