ES6 - handler.construct ()
El siguiente ejemplo define una clase Studentcon un constructor y un método getter. El constructor toma firstName y lastName como parámetros. El programa crea un proxy y define un objeto controlador para interceptar al constructor. El objeto controlador verifica el número de parámetros pasados al constructor. El objeto controlador arroja un error si no se pasan exactamente dos parámetros al constructor.
<script>
class Student{
constructor(firstName,lastName){
this.firstName = firstName
this.lastName = lastName
}
get fullName(){
return `${this.firstName} : ${this.lastName}`
}
}
const handler = {
construct:function(target,args){
if(args.length==2) {
return Reflect.construct(target,args);
}
else throw 'Please enter First name and Last name'
}
}
const StudentProxy = new Proxy(Student,handler)
const s1 = new StudentProxy('kannan','sudhakaran')
console.log(s1.fullName)
const s2 = new StudentProxy('Tutorials')
console.log(s2.fullName)
</script>
La salida del código anterior será la siguiente:
kannan : sudhakaran
Uncaught Please enter First name and Last name