我试图在coffeescript
中将函数放入资产管道如果我使用纯javascript,
mymodel.js
function restrictPlayback(event) {
// Trying to stop the player if it goes above 1 second
if (event.currentTime > 10) {
event.pause();
event.currentTime = 0
}
}
编译很好,功能正常。
如果我提出以下内容:
mymodel.js.coffee
restrictPlayback = (event) ->
# Trying to stop the player if it goes above 10 seconds
if event.currentTime > 10
event.pause()
event.currentTime = 0
我收到以下错误
Uncaught ReferenceError: restrictPlayback is not defined
我做错了什么?
答案 0 :(得分:1)
我怀疑您正在定义该功能,然后期望它具有全局范围(即可从任何地方使用)。
默认情况下,Coffeescript将已编译的代码包装到Immediately Invoked Function Expressions (IIFEs)中,因此您声明的函数仅在Coffeescript文件的范围内有效。
你可以通过在编译时使用-b标志来让Coffeescript停止在IIFE中包装,尽管学习Coffeescript方式的做法要好得多。