JS: 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 Tutorial .
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, 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. e.g.
let x = {a:1, b:2}
.
Create Object
JavaScript Object Property Overview
JavaScript, Object and Inheritance
- JS: Object Tutorial
- JS: Object Overview
- JS: Object Type
- JS: Test is Object Type π
- JS: Determine Type of Object
- JS: Prototype and Inheritance
- JS: Prototype Chain
- JS: Object.prototype.isPrototypeOf
- JS: Get Set Prototype
- JS: Show Prototype Chain π
- JS: Create Object
- JS: Object Literal Expression
- JS: Create Object with Parent X
- JS: Prevent Adding Property
- JS: Deep Copy Object, Array π
- JS: Test Object Equality π
- JS: Add Method to Prototype
- JS: Object Object
- JS: Object Constructor
- JS: Object.prototype