JavaScript objects are broadly classified into the following categories: native javascript objects, user objects, and host javascript objects.
Native objects: Native javascript objects are standard javascript objects which are provided by javascript itself. They are also known as built-in objects, pre-defined objects, or global objects. In JavaScript, native objects are objects that are built into the JavaScript language. These include objects like Array, Date, Math, and Object, as well as many others. Native objects are a fundamental part of the language and are always available to use in your code.
Example:
Javascript
<script> // Native object: Array let arr = [1, 2, 3]; console.log(arr); </script> |
Output:
Host objects: These are objects that are provided by the environment in which JavaScript is running. For example, if you are running JavaScript in a web browser, the window object and the document object are host objects. If you are running JavaScript in a Node.js server, the process object is a host object. Host objects are not part of the JavaScript language itself, but are provided by the environment in which the code is running.
Example:
Javascript
<script> // Host object: window let window = window; console.log(window); </script> |
Output:
User objects: These are objects that you create in your own code. These can be objects that you create using the Object constructor or using any of the other built-in object constructors (such as Array, Date, etc.). User objects are objects that you define and create in your own code, as opposed to being provided by the language or the environment.
Example:
Javascript
// User object: object created using object literal let myObject = { name: "John" , age: 30 }; console.log(myObject); // Output: { name: "John", age: 30 } |
Output:
Main differences between native, host, and user objects in JavaScript:
Property | Native Objects | Host Objects | User Objects |
Definition | Built into the JavaScript language and provided by the runtime environment | Provided by the host environment in which JavaScript is running | Created by the user using JavaScript code |
Examples | Array, String, Math, global object | window, document, XMLHttpRequest (in a web browser) | Custom objects created using object literals, constructor functions, or class syntax |
Method of creation | Created automatically by the runtime environment | Provided by the host environment | Created by the user using JavaScript code |
Availability | Available in all JavaScript environments | Dependent on the host environment | Dependent on the user’s code |
Modifiability | Cannot be modified | Maybe modifiable depending on the host environment | Can be modified by the user |
Inheritance | Can be inherited using prototypal inheritance | May not be inheritable | Can be inherited using prototypal inheritance |
Standardization | Part of the official JavaScript language specification | May not be part of the official JavaScript language specification | Not part of the official JavaScript language specification |
Compatibility | Consistently available and compatible across all JavaScript environments | May not be consistently available or compatible across all JavaScript environments | May not be consistently available or compatible across all JavaScript environments |
Native objects are an essential part of the JavaScript language and are always available to use in your code. Host objects are provided by the environment in which the code is running and may vary depending on the environment. User objects are objects that you create yourself in your own code.