在前端开发中,经常需要对于对象的属性进行读写。直接对属性进行访问虽然方便,但不具备数据合法性检查和副作用控制。而手写 getter 和 setter 又很容易造成代码重复和操作过于繁琐。因此,create-accessor 包就应运而生。这个 NPM 包可以通过配置来动态的生成对象的 getter 和 setter 访问器,让属性的访问变得更简单,更优雅。
安装
使用 NPM 全局安装 create-accessor 包
--- ------- -- ---------------
使用
在 Node.js 项目里引入 create-accessor 包,并使用 createAccessor 方法生成访问器,如下所示:
----- -------------- - --------------------------- ----- --- - ---------------- - ----- ------- ---------- -------- ----- - ------ ------ --- --- --------- - -- - ----- ------ ---------- -------- ----- - ------ ------ --- --- -------- -- --- - - -- --- - ---- -- ---------- -------- ----- - ------ ---------------- -- --------- -------- ----- - ------ ---- -- -------- - - --- -------- - ------- -- -- ------- - -- -- -- ------- - ----- -- ------- --------- ---- --------------------- -- ---- -- ------- -------- ----
上面代码中,createAccessor 方法接受一个对象数组,每个对象都表示一个属性,包含以下属性:
name
: 属性名,必须指定。validator
:值的验证,如需添加特殊额外的验证,需要指定该属性为一个验证函数。beforeSet
: 存储器的 setter 转换函数,用于将传入的值转换成实际存储的值。afterGet
: 存储器的 getter 转换函数,用于将存储的值转换成返回的值。
使用 createAccessor 方法创建出的对象,通过点访问器访问到的属性就是被设定好的 setter 和 getter。
原理
create-accessor 通过 Object.defineProperty 给对象的都添加 getter 和 setter,所以这段代码中的所有操作都会委托给 create-accessor。
总结
通过使用 create-accessor ,我们可以快速且优雅地为对象属性提供 getter 和 setter。同时,我们还可以通过验证函数,限制存储器的访问,确保了属性的正确性。此外,我们还可以添加 beforeSet 和 afterGet 函数来转换存储器的值,使其更符合业务需求。create-accessor 是一个非常实用、简单和易用的工具,有能力和需要的开发者可以尝试使用。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668f8d9381d61a3540f73