JS: Object Overview
What is JavaScript Object
A JavaScript Object is a collection of key-and-value pairs. e.g. {a:1, b:2}. Each key-and-value pair is called a Property.
Special Object and Data Object
JavaScript objects can be categorized into 2 kinds:
- Object Object. (aka data object)
-
collection of key-and-value pairs. e.g.
{a:1, b:2} - Specialized Object
-
- Special purpose and may have internal data.
- For example, function, date, regex, etc, are specialized objects.
- They have special properties and behaviors.
- But they still have the feature of holding key-and-value pairs.
Prototype of an Object (Parent)
- Each object MAY have ONE parent object. This object is call its prototype.
- The chain of parents is called Prototype Chain. The significance of Prototype Chain is how object's properties are looked up: When a property is accessed, JavaScript will go up the parent object or parent of parent etc to look for the property. (this is called inheritance.)
This is called Prototype-Based Object System.
IsExtensible
Each object has a special true/false value attached called the [[isExtensible]] internal slot. It specifies whether new properties can be added to the object.
Standard Object, Hosted Object, User-Created Object
It is useful to distinguish objects by where they came from. We have the following sources:
- Standard Object
-
Objects from the JavaScript language. e.g. arrays, functions, dates, regex, etc.
- Hosted Object
-
Objects from the hosting environment. e.g. in Browser, there's Browser's Window Object. In deno, there is
denoobject, with properties such as version etc. - User-defined Object (Data Object)
-
User defined.