当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


ES6 handler.set()用法及代码示例



下面的示例定义了一个带有构造函数和自定义 getter 方法 fullName 的 Student 类。构造函数将 firstName 和 lastName 作为参数。该程序创建一个代理并定义一个处理程序对象,该对象拦截所有对 firstName 和 lastName 的设置操作。如果属性值的长度不大于 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>

上面代码的输出将如下所示——

Tutorials:Point
Test:Point
Uncaught string length should be greater than 2

相关用法


注:本文由纯净天空筛选整理自 ES6 - handler.set()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。