[1] >An [DFN@en[object]] is a member of the type [CODE(JS)@en[[[Object]]]]. It is an unordered collection of [[properties]] each of which contains a [[primitive value]], [[object]], or [[function]]. A [[function]] stored in a [[property]] of an [[object]] is called a [[method]]. ;; [CITE[ECMAScript Language Specification (HTML version)]] ([TIME[2009-04-03 04:43:48 +09:00]] 版) [2] >ECMAScript is object-based: basic language and host facilities are provided by objects, and an ECMAScript program is a cluster of communicating objects. An ECMAScript [DFN[object]] is an unordered collection of properties each with zero or more attributes that determine how each property can be used [INS[...]]; an object is a member of the remaining built-in type Object; and a method is a function associated with an object via a property. ;; [CITE[ECMAScript Language Specification (HTML version)]] ([TIME[2009-04-03 04:43:48 +09:00]] 版) 、 「an informal overview of ECMAScript」より。 * 仕様書 -[5] [CITE[ECMAScript Language Specification (HTML version)]] ([TIME[2009-04-03 04:43:48 +09:00]] 版) -- '''''' * 内部特性 [4] :[CODE(JS)@en[[['''[''''''['''Call''']'''''']''']]]]:あり [SRC[[[ES3]] 15.2.1.1]] :[CODE(JS)@en[[['''[''''''['''CanPut''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.3]] :[CODE(JS)@en[[['''[''''''['''Class''']'''''']''']]]]:[CODE(JS)@en["[[Function]]"]] [SRC[[[ES3]] 15]] :[CODE(JS)@en[[['''[''''''['''Construct''']'''''']''']]]]:あり [SRC[[[ES3]] 15.2.2.1]] :[CODE(JS)@en[[['''[''''''['''Default''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.6]] :[CODE(JS)@en[[['''[''''''['''Delete''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.5]] :[CODE(JS)@en[[['''[''''''['''Get''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.1]] :[CODE(JS)@en[[['''[''''''['''HasProperty''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.4]] :[CODE(JS)@en[[['''[''''''['''Prototype''']'''''']''']]]]:[[[CODE(JS)@en[Function]]プロトタイプ・オブジェクト]] [SRC[[[ES3]] 15.2.3]] :[CODE(JS)@en[[['''[''''''['''Put''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.2]] * 特性 [3] ,[CODE(JS)@en[[[length]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[prototype]]]],[[ECMA]] [[標準]],[[ES3]] * [CODE(JS)@en[Object]] プロトタイプ・オブジェクト ** 内部特性 [6] :[CODE(JS)@en[[['''[''''''['''CanPut''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.3]] :[CODE(JS)@en[[['''[''''''['''Class''']'''''']''']]]]:[CODE(JS)@en["[[Object]]"]] [SRC[[[ES3]] 15.2.4]] :[CODE(JS)@en[[['''[''''''['''Default''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.6]] :[CODE(JS)@en[[['''[''''''['''Delete''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.5]] :[CODE(JS)@en[[['''[''''''['''Get''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.1]] :[CODE(JS)@en[[['''[''''''['''HasProperty''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.4]] :[CODE(JS)@en[[['''[''''''['''Prototype''']'''''']''']]]]:[CODE(JS)@en[[[null]]]] [SRC[[[ES3]] 15.2.3]] :[CODE(JS)@en[[['''[''''''['''Put''']'''''']''']]]]:標準 [SRC[[[ES3]] 18.6.2.2]] ** 特性 [7] ,[CODE(JS)@en[[[constructor]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[hasOwnProperty]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[isPrototypeOf]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[propertyIsEnumerable]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[valueOf]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[toLocaleString]]]],[[ECMA]] [[標準]],[[ES3]] ,[CODE(JS)@en[[[toString]]]],[[ECMA]] [[標準]],[[ES3]] * オブジェクト (JSON) [9] [[JSON]] における[DFN[[RUBYB[[[オブジェクト]]]@en[object]]]]は、 零個[[以上]]の名前と値の組の順序を持たない[[集成]]です。 ただし、名前は[[文字列]]であり、値は[[文字列]]、[[数値]]、[[boolean]]、 [[null]]、[[オブジェクト]]、[[配列]]のいずれかです。 ;; [8] [CITE@en[RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON)]] ([TIME[2011-08-16 17:02:48 +09:00]] 版)