Javascript 为什么coffescript要创建这个闭包
我正在学习咖啡脚本我有以下代码:Javascript 为什么coffescript要创建这个闭包,javascript,coffeescript,Javascript,Coffeescript,我正在学习咖啡脚本我有以下代码: class Person constructor: (@firstName, @lastName) -> sayHi: () -> return "Hi, I'm #{@firstName} #{@lastName}" 正在生成以下javascript代码: // Generated by CoffeeScript 1.10.0 (function() { var Person; Person = (fun
class Person
constructor: (@firstName, @lastName) ->
sayHi: () ->
return "Hi, I'm #{@firstName} #{@lastName}"
正在生成以下javascript代码:
// Generated by CoffeeScript 1.10.0
(function() {
var Person;
Person = (function() {
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
Person.prototype.sayHi = function() {
return "Hi, I'm " + this.firstName + " " + this.lastName;
};
return Person;
})();
}).call(this);
我想创建该
类的实例,但由于它在闭包中,我无法确定该如何创建它?更改一个类的声明
class window.Person
constructor: (@firstName, @lastName) ->
sayHi: () ->
return "Hi, I'm #{@firstName} #{@lastName}"
稍微不那么粗俗的一个选项是@
操作符(与this
相同)。在浏览器环境中,此
将指向窗口
,在节点.js
中,它将指向导出
class @Person
constructor: (@firstName, @lastName) ->
sayHi: () ->
return "Hi, I'm #{@firstName} #{@lastName}"
窗口。Person
仅在浏览器上工作,@
将在节点和浏览器上工作。看
或者,您可以使用-b
(-bare)
选项运行coffescript,并且不会创建包装函数。这是在咖啡中运行coffescript的正确方法吗?
?您应该提到您正在使用节点.js
?我没有使用节点
。只是npm
用于安装一些软件包,但现在它只是前端应用程序。我想在此基础上运行jasmine测试,但当我需要
js文件时,Person未定义,因为它在关闭中