exotic objectãhost objectã®å¼ã³åãå¤ãã£ããã®ã¨ãã風潮
- native object -> ordinary object
- host object -> exotic object
ã£ã¦æãã®è§£éãããèããã©éãã¨æãã(誰ãè¨ã£ã¦ãªãã£ããããããªãã)
es6ä¸ã§ã®å®ç¾©
4.3.6 ordinary object
object that has the default behaviour for the essential internal methods that must be supported by all objects.
4.3.7 exotic object
object that does not have the default behaviour for one or more of the essential internal methods that must be supported by all objects.
NOTE Any object that is not an ordinary object is an exotic object.
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-ordinary-object
å ¨ã¦ã®ãªãã¸ã§ã¯ããæã£ã¦ãå¿ é ãªå é¨ã¡ã½ããã®æ¯ãèããããã©ã«ããªãã¤ãordinary object
ãã以å¤(å é¨ã¡ã½ããã®æ¯ãèããããã©ã«ããããªããã¤)ãexotic object
ã£ã¦ãªã£ã¦ãã¯ãã
es5.1ã®å®ç¾©
4.3.6 native object
object in an ECMAScript implementation whose semantics are fully defined by this specification rather than by the host environment
NOTE Standard native objects are defined in this specification. Some native objects are built-in; others may be constructed during the course of execution of an ECMAScript program.
4.3.8 host object
object supplied by the host environment to complete the execution environment of ECMAScript
NOTE Any object that is not native is a host object.
http://www.ecma-international.org/ecma-262/5.1/#sec-4.3.6
ã¨ãªã£ã¦ãã¦å®è¡ç°å¢ãã¨ã«ä½ãããã®ãhost objectã§ãããã§ãªãesã«ãã£ã¦å®è£ ããã¦ãã®ãnative object.
ãªã®ã§
ãã¨ãã°Arrayã¨ãã¯ES5ã®å®ç¾©ã§ã¯native objectã ã¨æããã ãã©ãES6ã®å®ç¾©ã§ã¯[[DefineOwnProperty]]
ãlength
ãèæ
®ããããã«å¤æ´ããã¦ã¦ããã©ã«ãã®æ¯ãèãã¨éãã®ã§exotic objectã«ãªã
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array-exotic-objects
An Array object is an exotic object