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