下面的例子定义了一个类Student带有一个构造函数和一个 getter 方法。构造函数将 firstName 和 lastName 作为参数。该程序创建一个代理并定义一个处理程序对象来拦截构造函数。处理程序对象验证传递给构造函数的参数数量。如果正好有两个参数没有传递给构造函数,处理程序对象就会抛出错误。
<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>
上面代码的输出将如下所示:
kannan:sudhakaran Uncaught Please enter First name and Last name
相关用法
- ES6 handler.set()用法及代码示例
- ES6 handler.get()用法及代码示例
- ES6 handler.apply()用法及代码示例
- ES6 handler.has()用法及代码示例
- ES6 RegExp split()用法及代码示例
- ES6 Array every()用法及代码示例
- ES6 Array reduceRight()用法及代码示例
- ES6 Reflect.set()用法及代码示例
注:本文由纯净天空筛选整理自 ES6 - handler.construct()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。