Trình biên dịch coffeescript, vì một lý do nào đó, gói tất cả các tệp .coffee của tôi trong một hàm khi chúng được biên dịch. Ví dụ, nếu tôi có test.coffee:Các tệp gói Coffeescript trong một hàm
class TestClass
constructor: (@value) ->
printValue:() ->
alert(@value)
printAValue =() ->
test = new TestClass()
test.printValue()
sau đó tôi nhận được test.js:
(function() {
var TestClass, printAValue;
TestClass = (function() {
function TestClass(value) {
this.value = value;
}
TestClass.prototype.printValue = function() {
return alert(this.value);
};
return TestClass;
})();
printAValue = function() {
var test;
test = new TestClass();
return test.printValue();
};
}).call(this);
tập tin đơn giản html của tôi sẽ không làm việc với điều này:
<html>
<head>
<script src="test.js"></script>
</head>
<body onload="printAValue()">
</body>
</html>
tôi đã không làm việc với JS nhiều trước đây, và tôi sẽ không nghi ngờ trình biên dịch cà phê, nhưng là cách nó nên làm việc? Cách
Hãy thử thay đổi dòng coffeescript của bạn để chuyển giá trị cho bộ khởi tạo TestClass -'test = new TestClass ('hello world') ' – arunkumar
Xem [câu trả lời của tôi ở đây] [1] về mã chia sẻ giữa các tệp JS/mô-đun. [1]: http://stackoverflow.com/questions/6951438/accessing-document-within-coffeescripts-default-wrapper/6951641#6951641 –
này được đến nay là câu hỏi phổ biến nhất được hỏi về CoffeeScript trên VÌ THẾ. Xem http://stackoverflow.com/q/6481986/66226, http://stackoverflow.com/q/4214731/66226, http: //stackoverflow.com/q/5693211/66226 ... –