我正在尝试向String原始类型/类添加一个方法,我可以从URL字符串中添加额外的参数
String::getUrlParams = -> # line 1
false unless ( params = @.split('?')[1] ) # line 2
# ...
Run Code Online (Sandbox Code Playgroud)
在Chrome控制台中,当我故意用一串没有params的URL调用此方法时,我希望它只返回false.
"http://dns.com/".getUrlParams();
Run Code Online (Sandbox Code Playgroud)
但它通过第2行.
如果我改变第2行
return false unless ( params = @.split('?')[1] ) # line 2`
Run Code Online (Sandbox Code Playgroud)
然后它返回false并在第2行停止该功能
知道为什么coffeescript没有返回false并在第一个版本中停止了这个功能吗?
谢谢
Coffeescript仅返回最后一个函数语句.如果某些语句后面有某些内容,您希望在函数中间返回,那么您应该明确地执行此操作.
- 短暂的想法 - 简而言之 - Coffeescript编译器不是那么聪明,可以预测,你可能想要或不想返回的东西.现在大多数编译器都适用.此外,它的非智能性避免了大多数错误,这些错误可能是由于过早回归造成的.
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |