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