JavaScript JS Tutorial JS Objects JS Functions JS Classes JS Async JS HTML DOM JS Browser BOM JS Web APIs JS AJAX JS JSON JS vs jQuery JS Graphics



Object Reference

JavaScript is an object-oriented programming language, which means that it uses objects to represent data and functionality. Objects are a collection of properties and methods that can be used to perform various tasks. In JavaScript, objects are created using the object literal notation or the constructor function. When an object is created, a reference to that object is returned. This reference is used to access the properties and methods of the object.

Object reference is a term used to describe the way that objects are stored and accessed in memory. When an object is created, it is stored in memory and a reference to that object is returned. This reference is a pointer to the location in memory where the object is stored. When you access an object, you are actually accessing the reference to that object, not the object itself.

Let's take a look at some code examples to better understand object reference in JavaScript:

Object Literal Notation

Object literal notation is a way to create objects in JavaScript by defining them as a comma-separated list of name-value pairs enclosed in curly braces. Here's an example:


const person = {
  name: 'John',
  age: 30,
  address: {
    street: '123 Main St',
    city: 'Anytown',
    state: 'CA'
  }
};

const personReference = person;

personReference.name = 'Jane';

console.log(person.name); // Output: Jane

In this example, we create an object called person using object literal notation. We then create a reference to that object called personReference. When we change the value of the name property on the personReference object, we are actually changing the value of the name property on the person object because they both reference the same object in memory.

Constructor Function

Constructor functions are another way to create objects in JavaScript. They are functions that are used to create new objects using the new keyword. Here's an example:


function Person(name, age) {
  this.name = name;
  this.age = age;
}

const person = new Person('John', 30);
const personReference = person;

personReference.name = 'Jane';

console.log(person.name); // Output: Jane

In this example, we create a constructor function called Person that takes two parameters: name and age. We then create a new object called person using the new keyword and the Person constructor function. We also create a reference to that object called personReference. When we change the value of the name property on the personReference object, we are actually changing the value of the name property on the person object because they both reference the same object in memory.

Passing Objects as Arguments

When you pass an object as an argument to a function, you are actually passing a reference to that object. Here's an example:


function changeName(person) {
  person.name = 'Jane';
}

const person = {
  name: 'John',
  age: 30
};

changeName(person);

console.log(person.name); // Output: Jane

In this example, we create a function called changeName that takes an object called person as an argument. When we call the changeName function and pass in the person object, we are actually passing a reference to that object. When we change the value of the name property on the person object inside the changeName function, we are actually changing the value of the name property on the original person object because they both reference the same object in memory.

Object reference is an important concept in JavaScript because it allows you to work with objects in a more efficient and flexible way. By understanding how object reference works, you can avoid common mistakes and write more effective code.

References

Activity