CoffeeScript-オブジェクト

CoffeeScriptのオブジェクトはJavaScriptのオブジェクトに似ています。これらはプロパティのコレクションであり、プロパティにはセミコロンで区切られたキーと値が含まれます(:)。つまり、CoffeeScriptオブジェクトはキーと値のペアのコレクションです。オブジェクトは中括弧を使用して定義され、空のオブジェクトは次のように表されます。{}

構文

以下に、CoffeeScriptのオブジェクトの構文を示します。ここでは、オブジェクトのキーと値のペアを中括弧内に配置し、コンマ(,)。

object ={key1: value, key2: value,......keyN: value}

以下は、CoffeeScriptでオブジェクトを定義する例です。このコードを名前の付いたファイルに保存しますobjects_example.coffee

student = {name: "Mohammed", age: 24, phone: 9848022338 }

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

> coffee -c objects_example.coffee

コンパイルすると、次のJavaScriptが表示されます。

// Generated by CoffeeScript 1.10.0
(function() {
  var student;

  student = {
    name: "Mohammed",
    age: 24,
    phone: 9848022338
  };

}).call(this);

配列の場合と同様に、以下に示すように、新しい行でキーと値のペアを指定することにより、コンマを削除できます。

student = {
  name: "Mohammed" 
  age: 24
  phone: 9848022338 
  }

中括弧の代わりにインデント

CoffeeScriptの他のブロックステートメントと同様に、中括弧の代わりにインデントを使用できます {} 次の例に示すように。

以下に示すように、中括弧なしで上記の例を書き直すことができます。

student = 
  name: "Mohammed" 
  age: 24
  phone: 9848022338

ネストされたオブジェクト

CoffeeScriptでは、オブジェクト内にオブジェクトを書き込むことができます。

次の例は、CoffeeScriptのネストされたオブジェクトを示しています。このコードを名前の付いたファイルに保存しますnested_objects.coffee

contact =
  personal:
    email: "[email protected]"
    phone:  9848022338
  professional:
    email: "[email protected]"
    phone:  9848033228

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

> coffee -c nested_objects.coffee

コンパイルすると、次のJavaScriptが表示されます。

// Generated by CoffeeScript 1.10.0
(function() {
  var contact;

  contact = {
    personal: {
      email: "[email protected]",
      phone: 9848022338
    },
    professional: {
      email: "[email protected]",
      phone: 9848033228
    }
  };

}).call(this);

オブジェクトの理解

オブジェクトの内容を反復処理するために、内包表記を使用できます。オブジェクトの内容を繰り返すことは、配列の内容を繰り返すことと同じです。オブジェクトでは、2つの要素のキーと値を取得する必要があるため、2つの変数を使用します。

以下は、内包表記を使用してオブジェクトの内容を反復する方法を示す例です。このコードを名前の付いたファイルに保存しますobject_comprehensions.coffee

student = 
  name: "Mohammed" 
  age: 24
  phone: 9848022338 

console.log key+"::"+value for key,value of student

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

> coffee -c object_comprehensions.coffee

コンパイルすると、次のJavaScriptが表示されます。

// 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);

今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。

> coffee object_comprehensions.coffee

実行すると、CoffeeScriptファイルは次の出力を生成します。

name::Mohammed
age::24
phone::9848022338

オブジェクトの配列

CoffeeScriptでは、以下に示すように、配列にオブジェクトを含めることもできます。

a = [
     object1_key1: value
     object1_key2: value
     object1_key3: value
  ,
     object2_key1: value
     object2_key2: value
     object2_key3: value
]

次の例は、オブジェクトの配列を定義する方法を示しています。必要なオブジェクトのキーと値のペアを、コンマを使用して区切ることで配列にリストできます。(,)

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

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

c:\> coffee -c array_of_objects.coffee

コンパイルすると、次のJavaScriptが表示されます。

// 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);

今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。

c:\> coffee array_of_objects.coffee

実行すると、CoffeeScriptファイルは次の出力を生成します。

{ name: 'Mohammed', age: 24, phone: 9848022338 }
{ name: 'Ram', age: 25, phone: 9800000000 }
{ name: 'Ram', age: 25, phone: 9800000000 }

予約キーワード

JavaScriptでは、予約されたキーワードをオブジェクトのプロパティ名として使用できません。使用する場合は、二重引用符を使用してそれらをラップする必要があります。 " "

次の例を考えてみましょう。ここでは、名前の付いたプロパティを作成しましたclass、これは予約済みのキーワードです。このコードを名前の付いたファイルに保存しますreserved_keywords.coffee

student ={ 
  name: "Mohammed" 
  age: 24
  phone: 9848022338
  class: "X"
  }
console.log key+"::"+value for key,value of student

を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。

c:\> coffee -c reserved_keywords.coffee

コンパイルすると、次のJavaScriptが表示されます。ここでは、CoffeeScriptコンパイラが私たちに代わってキーワードクラスを二重引用符で囲んでいることがわかります。

// 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);

今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。

c:\> coffee array_of_objects.coffee

実行すると、CoffeeScriptファイルは次の出力を生成します。

name::Mohammed
age::24
phone::9848022338
class::X