JavaScript: Object Overview
This page is a overview of JavaScript object system. It's called prototype-based object system.
If you don't know how to create object, read properties, first see: Object Basics .
What is JavaScript Object
A JavaScript Object is a collection of key/value pairs.
e.g. {a:1, b:2}
.
Each key/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 value pairs. E.g.
{a:1, b:2}
- Specialized Object β special purpose, and internal data. {Arrays, functions, date, regex, etc}, are specialized objects. They have special properties and behaviors. But they still has normal key/value pairs, and can be used like data object to hold collection of key value pairs.
[see Object Type]
Prototype of an Object (Parent)
- Each object has zero or one parent object, called its prototype.
- The line 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.)
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.
[see Prevent Adding Property]
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. For example, arrays, functions, dates, regex,
Math
, etc. [see JavaScript Object Reference] - Hosted Object
-
Objects from the hosting environment. For example, in Browser, there's
Browser's Window Object. In deno, there is
deno
object, with properties such as version etc. - User-defined Object (Data Object)
-
User defined. For example,
let x = {a:1, b:2}
.
Create Object
JavaScript Object Property Overview
JavaScript Object and Inheritance
- Object Basics
- Object Overview
- Object Type
- Test If a Value is Object Type π
- Find Object's Type
- Prototype and Inheritance
- Prototype Chain
- Is in Prototype Chain?
- Get/Set Parent
- Show Parent Chain π
- Create Object
- Object Literal Expr
- Create Object + Parent
- Prevent Adding Property
- Clone Object π
- Test Object Equality π
- Add Method to Prototype