- ES6 Tutorial
- ES6 - Home
- ES6 - Overview
- ES6 - Environment
- ES6 - Syntax
- ES6 - Variables
- ES6 - Operators
- ES6 - Decision Making
- ES6 - Loops
- ES6 - Functions
- ES6 - Events
- ES6 - Cookies
- ES6 - Page Redirect
- ES6 - Dialog Boxes
- ES6 - Void Keyword
- ES6 - Page Printing
- ES6 - Objects
- ES6 - Number
- ES6 - Boolean
- ES6 - Strings
- ES6 - Symbol
- ES6 - New String Methods
- ES6 - Arrays
- ES6 - Date
- ES6 - Math
- ES6 - RegExp
- ES6 - HTML DOM
- ES6 - Iterator
- ES6 - Collections
- ES6 - Classes
- ES6 - Maps And Sets
- ES6 - Promises
- ES6 - Modules
- ES6 - Error Handling
- ES6 - Object Extensions
- ES6 - Reflect API
- ES6 - Proxy API
- ES6 - Validations
- ES6 - Animation
- ES6 - Multimedia
- ES6 - Debugging
- ES6 - Image Map
- ES6 - Browsers
- ES7 - New Features
- ES8 - New Features
- ES9 - New Features
- ES6 Useful Resources
- ES6 - Quick Guide
- ES6 - Useful Resources
- ES6 - Discussion
ES6 - handler.set()
The following example defines a class Student with a constructor and a custom getter method, fullName. The constructor takes firstName and lastName as parameters. The program creates a proxy and defines a handler object which intercepts all set operations on firstName and lastName. The handler object throws an error if the length of the property value is not greater than 2.
<script> class Student{ constructor(firstName,lastName){ this.firstName = firstName this.lastName = lastName } get fullName(){ return `${this.firstName} : ${this.lastName}` } } const handler = { set: function(target,property,value){ if(value.length>2){ return Reflect.set(target,property,value); } else { throw 'string length should be greater than 2' } } } const s1 = new Student("Tutorials","Point") const proxy = new Proxy(s1,handler) console.log(proxy.fullName) proxy.firstName="Test" console.log(proxy.fullName) proxy.lastName="P" </script>
The output of the above code will be as shown below −
Tutorials : Point Test : Point Uncaught string length should be greater than 2
Advertisements