CoffeeScript - Đối tượng
Các đối tượng trong CoffeeScript tương tự như các đối tượng trong JavaScript. Đây là một tập hợp các thuộc tính, trong đó một thuộc tính bao gồm khóa và giá trị được phân tách bằng dấu chấm phẩy (:). Tóm lại, các đối tượng CoffeeScript là một tập hợp các cặp khóa-giá trị. Các đối tượng được định nghĩa bằng cách sử dụng dấu ngoặc nhọn, một đối tượng trống được biểu diễn dưới dạng{}.
Cú pháp
Dưới đây là cú pháp của một đối tượng trong CoffeeScript. Ở đây, chúng tôi đặt các cặp khóa-giá trị của các đối tượng trong dấu ngoặc nhọn và chúng được phân tách bằng dấu phẩy (,).
object ={key1: value, key2: value,......keyN: value}
Thí dụ
Sau đây là một ví dụ về xác định một đối tượng trong CoffeeScript. Lưu mã này trong một tệp có tênobjects_example.coffee
student = {name: "Mohammed", age: 24, phone: 9848022338 }
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
> coffee -c objects_example.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var student;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338
};
}).call(this);
Cũng giống như trong mảng, chúng ta có thể loại bỏ dấu phẩy bằng cách chỉ định các cặp khóa-giá trị trong các dòng mới như hình dưới đây.
student = {
name: "Mohammed"
age: 24
phone: 9848022338
}
Thụt lề thay vì dấu ngoặc nhọn
Cũng giống như các câu lệnh khối khác trong CoffeeScript, chúng ta có thể sử dụng thụt lề thay vì dấu ngoặc nhọn {} như thể hiện trong ví dụ sau.
Thí dụ
Chúng ta có thể viết lại ví dụ trên mà không có dấu ngoặc nhọn như hình dưới đây.
student =
name: "Mohammed"
age: 24
phone: 9848022338
Các đối tượng lồng nhau
Trong CoffeeScript, chúng ta có thể viết các đối tượng bên trong các đối tượng.
Thí dụ
Ví dụ sau minh họa các đối tượng lồng nhau trong CoffeeScript. Lưu mã này trong một tệp có tênnested_objects.coffee
contact =
personal:
email: "[email protected]"
phone: 9848022338
professional:
email: "[email protected]"
phone: 9848033228
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
> coffee -c nested_objects.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var contact;
contact = {
personal: {
email: "[email protected]",
phone: 9848022338
},
professional: {
email: "[email protected]",
phone: 9848033228
}
};
}).call(this);
Toàn diện các đối tượng
Để lặp lại nội dung của một đối tượng, chúng ta có thể sử dụng phần hiểu. Lặp lại nội dung của một đối tượng cũng giống như lặp lại nội dung của một mảng. Trong các đối tượng, vì chúng ta phải truy xuất hai khóa và giá trị phần tử nên chúng ta sẽ sử dụng hai biến.
Thí dụ
Sau đây là một ví dụ cho thấy cách lặp lại nội dung của một đối tượng bằng cách sử dụng phần hiểu. Lưu mã này trong một tệp có tênobject_comprehensions.coffee
student =
name: "Mohammed"
age: 24
phone: 9848022338
console.log key+"::"+value for key,value of student
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
> coffee -c object_comprehensions.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var key, student, value;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338
};
for (key in student) {
value = student[key];
console.log(key(+"::" + value));
}
}).call(this);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
> coffee object_comprehensions.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
name::Mohammed
age::24
phone::9848022338
Mảng đối tượng
Trong CoffeeScript, một mảng cũng có thể chứa các đối tượng như hình dưới đây.
a = [
object1_key1: value
object1_key2: value
object1_key3: value
,
object2_key1: value
object2_key2: value
object2_key3: value
]
Ví dụ sau đây cho thấy cách xác định một mảng đối tượng. Chúng ta chỉ có thể liệt kê các cặp giá trị khóa của các đối tượng mà chúng ta muốn trong một mảng bằng cách phân tách chúng bằng dấu phẩy(,).
students =[
name: "Mohammed"
age: 24
phone: 9848022338
,
name: "Ram"
age: 25
phone: 9800000000
,
name: "Ram"
age: 25
phone: 9800000000
]
console.log student for student in students
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c array_of_objects.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau.
// Generated by CoffeeScript 1.10.0
(function() {
var i, len, student, students;
students = [
{
name: "Mohammed",
age: 24,
phone: 9848022338
}, {
name: "Ram",
age: 25,
phone: 9800000000
}, {
name: "Ram",
age: 25,
phone: 9800000000
}
];
for (i = 0, len = students.length; i < len; i++) {
student = students[i];
console.log(student);
}
}).call(this);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee array_of_objects.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
{ name: 'Mohammed', age: 24, phone: 9848022338 }
{ name: 'Ram', age: 25, phone: 9800000000 }
{ name: 'Ram', age: 25, phone: 9800000000 }
Từ khóa dành riêng
JavaScript không cho phép các từ khóa dành riêng làm tên thuộc tính của một đối tượng, nếu chúng ta muốn sử dụng chúng, chúng ta phải đặt chúng bằng dấu ngoặc kép " ".
Thí dụ
Hãy xem xét ví dụ sau. Ở đây chúng tôi đã tạo một thuộc tính với tênclass, là một từ khóa dành riêng. Lưu mã này trong một tệp có tênreserved_keywords.coffee
student ={
name: "Mohammed"
age: 24
phone: 9848022338
class: "X"
}
console.log key+"::"+value for key,value of student
Mở command prompt và biên dịch tệp .coffee như hình dưới đây.
c:\> coffee -c reserved_keywords.coffee
Khi biên dịch, nó cung cấp cho bạn JavaScript sau. Ở đây bạn có thể thấy rằng trình biên dịch CoffeeScript đã thay mặt chúng tôi bao bọc lớp từ khóa bằng dấu ngoặc kép.
// Generated by CoffeeScript 1.10.0
(function() {
var key, student, value;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338,
"class": "X"
};
for (key in student) {
value = student[key];
console.log(key + "::" + value);
}
}).call(this);
Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.
c:\> coffee array_of_objects.coffee
Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.
name::Mohammed
age::24
phone::9848022338
class::X