JS: Object Overview
Object Tutorial
If you don't know how to create object, read properties, first see
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 may have 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 MAY have ONE parent object. This object is call 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.)
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.
〔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. e.g. arrays, functions, dates, regex, etc. 〔see JavaScript Object Reference〕
- Hosted Object
-
Objects from the hosting environment. e.g. 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 or Array 🚀
- JS: Test Object Equality 🚀
- JS: Add Method to Prototype
- JS: Object Object
- JS: Object Constructor
- JS: Object.prototype