「javascript権威ガイド第5版」オブジェクト
2580 ワード
7.1オブジェクトの作成:
オブジェクトは、複数の値を1つのユニットに集約し、名前で値を読み書きできます.もう1つの解釈は、オブジェクトが無秩序属性の集合であり、各属性には名前と対応する値があります.
このオブジェクトの説明がすべての言語に合っているかどうか分かりません.
最も簡単にオブジェクトを作成する方法は、カンマで区切られた名前/値のペアをカッコで囲むことです.
new操作で特定のオブジェクトを作成することもできます
7.2オブジェクト属性
普通は使えます.オペレータはオブジェクトのプロパティを取得します.
この例では、varを必要とせずに新しいオブジェクトプロパティを作成できるように簡単に値を割り当てることもできます.
JavaScript配列はオブジェクトであり、オブジェクトは配列のように中括弧[]でアクセスすることもできます.
これにより、プログラムに大きな柔軟性をもたらすことができます.
JavaScriptのfor/inは、オブジェクトを結合配列(associative arrays)として使用すると、より大きな力が得られます.
このコードはfor/inループを使わないとstocksが分からないのでできません.
Javaは反射によってダイナミックな部分を得ることができますが、複雑になります.
Scalaはもっと良い方法がありますか?
オブジェクトは、複数の値を1つのユニットに集約し、名前で値を読み書きできます.もう1つの解釈は、オブジェクトが無秩序属性の集合であり、各属性には名前と対応する値があります.
このオブジェクトの説明がすべての言語に合っているかどうか分かりません.
最も簡単にオブジェクトを作成する方法は、カンマで区切られた名前/値のペアをカッコで囲むことです.
var empty = {}; //
var point = { x:0, y:0 };
var circle = { x:point.x, y:point.y+1, radius:2 };
var homer = {
"name": "Homer Simpson",
"age": 34,
"married": true,
"occupation": "plant operator",
'email': "[email protected]"
};
new操作で特定のオブジェクトを作成することもできます
var a = new Array(); // Create an empty array
var d = new Date(); // Create an object representing the current date and time
var r = new RegExp("javascript", "i"); // Create a pattern-matching object
7.2オブジェクト属性
普通は使えます.オペレータはオブジェクトのプロパティを取得します.
// Create an object. Store a reference to it in a variable.
var book = {};
// Set a property in the object.
book.title = "JavaScript: The Definitive Guide"
// Set some more properties. Note the nested objects.
book.chapter1 = new Object();
book.chapter1.title = "Introduction to JavaScript";
book.chapter1.pages = 11;
book.chapter2 = { title: "Lexical Structure", pages: 6 };
// Read some property values from the object.
alert("Outline: " + book.title + "
\t" +
"Chapter 1 " + book.chapter1.title + "
\t" +
"Chapter 2 " + book.chapter2.title);
この例では、varを必要とせずに新しいオブジェクトプロパティを作成できるように簡単に値を割り当てることもできます.
JavaScript配列はオブジェクトであり、オブジェクトは配列のように中括弧[]でアクセスすることもできます.
object.property
object["property"]
これにより、プログラムに大きな柔軟性をもたらすことができます.
var stock_name = get_stock_name_from_user();
var shares = get_number_of_shares();
portfolio[stock_name] = shares;
JavaScriptのfor/inは、オブジェクトを結合配列(associative arrays)として使用すると、より大きな力が得られます.
var value = 0;
for (stock in portfolio) {
// For each stock in the portfolio, get the per share value
// and multiply it by the number of shares.
value += get_share_value(stock) * portfolio[stock];
}
このコードはfor/inループを使わないとstocksが分からないのでできません.
Javaは反射によってダイナミックな部分を得ることができますが、複雑になります.
Scalaはもっと良い方法がありますか?