从控制台调用coffeescript函数
Calling coffeescript functions from console
稍微使用一下coffeescript和Rails 3.1.0.rc4。代码如下:
yourMom = (location) ->
console.log location
yourMom "wuz hur"
当页面加载时,这将正确输出"wuz hur"。但当我试着呼叫
yourMom("wuz hur")
从chrome js控制台(因为我有时做测试正常的js函数),我得到一个"ReferenceError: yourMom是未定义"
coffeescript生成的函数是否以这种方式可用?
共享全局方法/变量的一种更简单的方法是使用@,它的意思是:
@yourMom = (location) ->
console.log location
yourMom "wuz hur"
语法更好,更容易阅读,但我不鼓励您创建全局方法/变量
这是因为coffeescript将所有内容包装在闭包中。该代码的JavaScript输出实际上是:
(function() {
var yourMom;
yourMom = function(location) {
return console.log(location);
};
yourMom("wuz hur");
}).call(this);
如果你想把它导出到全局作用域,你可以这样做:
window.yourMom = yourMom = (location) ->
console.log location
或
this.yourMom = yourMom = (location) ->
console.log location
我不确定Rails,但CoffeeScript编译器有一个选项(——bare)来编译没有函数包装。
这个链接可能会解决您的问题Rails -从JavaScript调用CoffeeScript将函数包装在一个唯一的名称空间中,然后可以从任何地方
相关文章:
- 尝试将js函数更改为coffeescript时发生Uncaught ReferenceError
- 如何在函数中调用函数?(CoffeeScript)
- Angularjs 与 coffeescript 函数表达式中断
- 调用命名空间的公共函数(coffeescript)时出现问题
- CoffeeScript-传递一个带有参数的匿名函数
- 一旦转换为CoffeeScript,就调用一个普通的JS函数
- 在方法中的函数中引用 CoffeeScript 类中的“this”的最佳方式是什么?
- 在 Coffeescript 类的函数中指定第 n 个参数的“super”
- coffeescript/backline.js:编写一个对字符串进行操作的哈希函数
- 装饰 CoffeeScript 类中的函数
- 从 rails 中的不同 coffeescript 文件调用函数
- 如何在 Rails 3 上从 js.erb 调用 coffeescript 函数以及如何理解 Javascript 中的
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- 任何转换对象*值*的Javascript或Coffeescript“映射”函数
- CoffeeScript - 将参数传递给超级构造函数时出现问题
- javascript/coffeescript 使用函数哈希作为参数
- CoffeeScript 承诺与函数定义链接
- 导出 node.js / coffeescript 中的私有函数
- 获取函数 coffeescript 中的对象值
- 未捕获类型错误:this.source不是函数coffeescript错误