这太荒谬了......
我尝试这样做时为什么会出错?
#...codecodecode...
g = generateGuid()
#...codecodecode...
generateGuid = ->
"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace /[xy]/g, (c) ->
r = Math.random() * 16 | 0
v = (if c is "x" then r else (r & 0x3 | 0x8))
v.toString 16
Run Code Online (Sandbox Code Playgroud)
我想做的就是打电话给私人电话......
运动是正确的.扩展他的答案:你可能习惯了JavaScript的习惯用语
function generateGuid() { ... }
Run Code Online (Sandbox Code Playgroud)
它允许您generateGuid从其范围内的任何地方进行呼叫(甚至在其定义之前).CoffeeScript不这样做; 相反,它编译成
var generateGuid = function() { ... }
Run Code Online (Sandbox Code Playgroud)
这样做有几个原因,但它的长短是因为函数遵循与所有其他变量相同的范围规则.在分配值之前generateGuid,generateGuid()是尝试呼叫undefined.
请注意,由于异步回调在JavaScript中的工作方式,这将起作用:
setTimeout (->
g = generateGuid
# ...codecodecode...
), 0
generateGuid = -> ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |