The Wayback Machine - https://web.archive.org/web/20240930213012/https://www.geeksforgeeks.org/javascript-proxy-handler/
Open In App

JavaScript Proxy/Handler

Last Updated : 30 Jul, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Save
Share
Report
News Follow

JavaScript Proxy is an object which intercepts another object and resists the fundamental operations on it. This object is mostly used when we want to hide information about one object from unauthorized access. A Proxy consists of two parts which are its target and handler. A target is a JavaScript object on which the proxy is applied and the handler object contains the function to intercept any other operation on it.

Syntax:

const prox = new Proxy(tar, handle) 

Parameters: This object accepts two parameters.

  • tar: It is the object on which the Proxy is to be applied
  • handle: It is the object in which the intercept condition is defined

Returns: A proxy object.

Example 1: Here the method applies a Proxy object with an empty handler.

JavaScript
let details = {
    name: "Raj",
    Course: "DSA",
}
const prox = new Proxy(details, {})

console.log(prox.name);
console.log(prox.Course);

Output:

Raj
DSA

Example 2: Here the method applies a handler function to intercept calls on the target object.

JavaScript
let details = {
    name: "Raj",
    Course: "DSA",
}
const prox = new Proxy(details, {
    get: function(){
        return "unauthorized"
    }
})

console.log(prox.name);
console.log(prox.Course);

Output:

unauthorized
unauthorized

Example 3: Here the method traps calls on the target object based on the condition.

JavaScript
let details = {
    name: "Raj",
    Course: "DSA",
}
const proxy = new Proxy(details, {
    get: function(tar, prop){
        if(prop == "Course"){
            return undefined;
        }
        return tar[prop];
    }
});

console.log(proxy.name);
console.log(proxy.Course);

Output:

Raj
undefined

Example 4: This example uses Proxy methods to delete properties.

JavaScript
const courseDetail = {
    name: "DSA",
    time: "6 months",
    status: "Ongoing",
}

const handler = {
  deleteProperty(target, prop) {
    if (prop in target) {
      delete target[prop];
      console.log(`Removed: ${prop}`);
    }
  }
};

const pro = new Proxy(courseDetail, handler);

console.log(pro.name);
delete pro.name
console.log(pro.name);

Output:

DSA
Removed: name
undefined

Supported Browsers:

  • Chrome
  • Edge
  • Firefox
  • Opera
  • Safari

We have a complete list of JavaScript Proxy methods, to check please go through JavaScript Proxy/handler Reference article.

JavaScript Proxy/Handler – FAQs

What is a Proxy in JavaScript?

A Proxy is a built-in object that allows you to create a custom behavior for fundamental operations on another object (called the target object). Proxies enable you to intercept and define custom behavior for operations such as property lookup, assignment, enumeration, function invocation, etc.

What is a Handler in JavaScript?

A Handler is an object that contains traps. Traps are methods that provide property access. These traps are methods that define the behavior of the proxy when an operation is performed on it.

How do you create a Proxy?

You can create a Proxy by using the new Proxy() constructor, which takes two arguments: the target object and the handler object.

How does the get trap work?

The get trap intercepts property access on the target object. It takes three arguments: the target object, the property name, and the receiver (typically the proxy itself).

How does the set trap work?

The set trap intercepts property assignment on the target object. It takes four arguments: the target object, the property name, the value to be assigned, and the receiver (typically the proxy itself).



Previous Article
Next Article

Similar Reads

JavaScript Course Understanding Code Structure in JavaScript
Inserting JavaScript into a webpage is much like inserting any other HTML content. The tags used to add JavaScript in HTML are <script> and </script>. The code surrounded by the <script> and </script> tags is called a script blog. The 'type' attribute was the most important attribute of <script> tag. However, it is no
4 min read
Introduction to JavaScript Course - Learn how to build a task tracker using JavaScript
This is an introductory course about JavaScript that will help you learn about the basics of javascript, to begin with, the dynamic part of web development. You will learn the basics like understanding code structures, loops, objects, etc. What this course is about? In this course we will teach you about the basics of the scripting language i.e) Ja
4 min read
JavaScript Course Loops in JavaScript
Looping in programming languages is a feature that facilitates the execution of a set of instructions/functions repeatedly while some condition evaluates to true. For example, suppose we want to print “Hello World” 10 times. Example: In this example we will print the same things, again and again, to understand the work of Loops. <script> cons
4 min read
JavaScript Course Logical Operators in JavaScript
logical operator is mostly used to make decisions based on conditions specified for the statements. It can also be used to manipulate a boolean or set termination conditions for loops. There are three types of logical operators in Javascript: !(NOT): Converts operator to boolean and returns flipped value &&:(AND) Evaluates operands and retu
3 min read
JavaScript Course What is JavaScript ?
JavaScript is a very famous programming language that was originally started in the year of 1995 with the motive of making web pages alive. It is also an essential part of the web developer skillset. In simple terms, if you want to learn web development then learn HTML & CSS before starting JavaScript. HTML: HTML is used to create the structure of
3 min read
JavaScript Course Operators in JavaScript
An operator is capable of manipulating a certain value or operand. Operators are used to performing specific mathematical and logical computations on operands. In other words, we can say that an operator operates the operands. In JavaScript, operators are used for comparing values, performing arithmetic operations, etc. There are various operators
7 min read
JavaScript Course Functions in JavaScript
Javascript functions are code blocks that are mainly used to perform a particular function. We can execute a function as many times as we want by calling it(invoking it). Function Structure: To create a function, we use function() declaration. // Anonymous function function(){ // function...body } // function with a name function displayMessage(){
4 min read
JavaScript Course Conditional Operator in JavaScript
JavaScript Conditional Operators allow us to perform different types of actions according to different conditions. We make use of the 'if' statement. if(expression){ do this; } The above argument named 'expression' is basically a condition that we pass into the 'if' and if it returns 'true' then the code block inside it will be executed otherwise n
3 min read
JavaScript Course Objects in JavaScript
We have learned about different Data Types that javascript provides us, most of them primitive in nature. Objects are not primitive in nature and are a bit complex to understand. Everything in javascript is basically an object, and that is the reason why it becomes very important to have a good understanding of what they are. Objects are used to st
4 min read
How to compare two JavaScript array objects using jQuery/JavaScript ?
In this article, we are given two JavaScript array/array objects and the task is to compare the equality of both array objects. These are the methods to compare two JavaScript array objects: Using jQuery not() methodUse the sort() functionUse JSON.stringify() functionUsing every() and indexOf()Using Lodash _.isEqual() MethodApproach 1: Using jQuery
3 min read
How can JavaScript codes be hidden from old browsers that do not support JavaScript ?
Nowadays all modern browsers support JavaScript, however, older browsers did not support JavaScript. In this article, we will learn how we can hide JavaScript code from running in older browsers. Approach: After opening the <script> tag, we will use a one-line HTML style comment without any closing character ( <!-- ). We will then write th
2 min read
How are the JavaScript window and JavaScript document different from one another?
What is a JavaScript window? The window is at a root/top level at the JavaScript object hierarchy. It is a global/root object in JavaScript and it is the root object of the Document object model(DOM); What is a JavaScript document? A document is an object inside the window object and we use a document object for manipulation inside the document. Th
3 min read
Explore the concept of JavaScript Function Scope and different types of JavaScript Functions
JavaScript is based on functional programming. Therefore, functions are fundamental building blocks of JavaScript. So the function is called first-class citizens in JavaScript. Syntax: Define a functionfunction functionName(parameters) { // SET OF STATEMENTS } Call a functionfunctionName(arguments); The function execution stops when all the stateme
10 min read
Which href value should we use for JavaScript links, "#" or "javascript:void(0)" ?
In this article, we will know which "href" should be used for JavaScript when we can use "#" or "javascript:void(0)". Let us understand it. Using the '#' value: The # is a fragment identifier used to refer to a specific section of the same document. When a user clicks a link with a # href, the browser will scroll to that section of the page specifi
3 min read
How to include a JavaScript file in another JavaScript file ?
In native JavaScript, before ES6 Modules 2015 was introduced had no import, include, or require functionalities. Before that, we can load a JavaScript file into another JavaScript file using a script tag inside the DOM that script will be downloaded and executed immediately. Now after the invention of ES6 modules, there are so many different approa
3 min read
JavaScript Program to find Length of Linked List using JavaScript
Given a linked list, the task is to determine its length using various methods. The linked list is a fundamental data structure consisting of nodes connected in a chain, offering efficient data organization. Different approaches, including Iterative and Recursive Methods, enable us to compute the length of a linked list easily. Use the below approa
3 min read
JavaScript Cheat Sheet - A Basic Guide to JavaScript
JavaScript is a lightweight, open, and cross-platform programming language. It is omnipresent in modern development and is used by programmers across the world to create dynamic and interactive web content like applications and browsers. It is one of the core technologies of the World Wide Web, alongside HTML and CSS, and the powerhouse behind the
15+ min read
JavaScript Course Variables in JavaScript
Variables in JavaScript are containers that hold reusable data. It is the basic unit of storage in a program. The value stored in a variable can be changed during program execution. A variable is only a name given to a memory location, all the operations done on the variable effects that memory location. In JavaScript, all the variables must be dec
4 min read
JavaScript Complete Guide - A to Z JavaScript Concepts
What is JavaScript ? JavaScript is a lightweight, cross-platform, single-threaded, and interpreted compiled programming language. It is also known as the scripting language for webpages. What is JavaScript Complete Guide ? JavaScript Complete Guide is a list of A to Z JavaScript concepts from beginner to advanced level. Table of Contents Introducti
8 min read
How to Delay a JavaScript Function Call using JavaScript ?
Delaying a JavaScript function call involves postponing its execution for a specified time using methods like setTimeout(). This technique is useful for timed actions, animations, or asynchronous tasks, enabling smoother user experiences and better control over when certain operations run. There are several ways to delay the execution of a function
3 min read
JavaScript Date Comparison: How to Compare Dates in JavaScript?
JavaScript Date Comparison is a common task and used in many applications. Like - building scheduling features, filtering data by date, or just checking if one date is before or after another. However, working with dates can be tricky due to different formats and time zones. In this article, we will explore various ways to compare dates in JavaScri
4 min read
How to Convert JavaScript Class to JSON in JavaScript?
When transmitting or saving class data in a structured manner, converting an instance of a class into a JSON format is also necessary. JSON (JavaScript Object Notation) supplies a method of turning objects into strings. They can be sent across a network or stored in a database, properties of the instance of the class should be taken out and changed
2 min read
How to Convert a JavaScript Object to a Form Data in JavaScript?
In web development, especially when dealing with forms and AJAX requests, you might find yourself needing to convert a JavaScript object into a FormData object. The FormData interface provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be sent via XMLHttpRequest or fetch() to the ser
4 min read
JavaScript vs Python : Can Python Overtop JavaScript by 2020?
This is the Clash of the Titans!! And no...I am not talking about the Hollywood movie (don’t bother watching it...it's horrible!). I am talking about JavaScript and Python , two of the most popular programming languages in existence today. JavaScript is currently the most commonly used programming language (and has been for quite some time!) but no
5 min read
Understanding variable scopes in JavaScript
In JavaScript, there are two types of variable scopes: Global Scope: Variables declared Globally (outside of any function) have Global Scope and Global variables can be accessed from anywhere in a program. Similar to function scope variables declared with var, let and const are quite similar when declared outside a block.Scope outside the outermost
6 min read
Must use JavaScript Array Functions – Part 3
Previous articles: Must use JavaScript Array Functions -Part 1 Must use JavaScript Array Functions -Part 2 In this article, we are going to discuss the following JavaScript array functions prototype.reduce()prototype.concat()prototype.sort()prototype.reverse() JavaScript Array.Prototype.reduce(): Array.prototype.reduce() function is used when the p
5 min read
JavaScript ES2015: Block Scoping
In this article, we will see what is Block scoping in Javascript, access to the block-scoped variables, how it is distinct from other kinds of variable's scope, through the examples. Prior to ES2015, JavaScript supported only function-level scoping unlike other languages like C++/Java which has block-level scoping. With ES2015, in addition to funct
5 min read
JavaScript dataView.getInt16() Method
The Javascript dataView.getInt16() is an inbuilt function in dataView that is used to get a 16-bit integer at the specified location i.e, at byte offset from the start of the dataView. The range of 16-bit integer values is from 0 and 65,535 for unsigned and from ?32,768 to 32,767 for signed integer values.Syntax: dataview.getInt16(byteOffset) Param
2 min read
JavaScript Adding minutes to Date object
Given a date and the task is to add minutes to it using JavaScript. To add minutes to the date object, some methods are used which are listed below: JavaScript getMinutes() Method: This method returns the Minutes (from 0 to 59) of the provided date and time. Syntax: Date.getMinutes() Parameters: This method does not accept any parameters. Return va
3 min read
JavaScript this Identifier
In JavaScript, 'this' identifier can be used in different contexts and scopes. Let us go through each to determine what this is and how it is decided. Global Scope: Whenever 'this' keyword is used in the global context i.e. not as a member of a function or object declaration, it always refers to the Global object. The following example will illustr
4 min read
Article Tags :