Tôi mới vào CoffeeScript (và khá thiếu kinh nghiệm với JS quá, vì thế xin lỗi nếu điều này là ngây thơ) và tôi đã cố gắng để tạo ra một lớp như sau:CoffeeScript Lớp viên
class Test
a: []
make: ->
@a.push ['A', 'B', 'C']
getdata: ->
output = ""
for i in @a
output += i
output
b = new Test
b.make()
alert(b.getdata())
c = new Test
c.make()
alert(c.getdata())
Kết quả tôi nhận được là: "A, B, C" "A, B, C, A, B, C"
Mặc dù tạo một trường hợp mới của 'Kiểm tra'; mảng được nối thêm và không bị xóa. Tôi làm gì sai ở đây? Tôi có khởi tạo biến thành viên sai không?
Bạn nên xem cách nguyên mẫu hoạt động và xem mã được tạo javascript. Tôi thấy rất nhiều sai lầm này trong coffeescript (ngay cả trong hướng dẫn/cookbooks). Quy tắc tôi sử dụng là chỉ định nghĩa các hàm và các mức tĩnh trong các thành viên lớp (tôi định nghĩa các đặc tính cá thể trong hàm tạo bằng cú pháp @member). Và có nó là kinda khó hiểu cho việc sử dụng từ khóa coffeescript lớp. – Guillaume86
lưu ý phụ: 'getdata: -> @ a.join ('')' – tokland
Cảm ơn Guillaume86 và tokland. Tôi đã học được rất nhiều từ điều này. – Anoop