使用框架/语言中的getter/setter,或者定义自己的显式getter/setters
Use getters/setters from framework/language or define your own explicit ones
当我还是一名实习生,使用Backbone.JS进行JavaScript前端项目时,我使用了框架(Backbone)提供的getter和setter,但我被要求定义自己的getter,以明确什么是公共/私有的。我更喜欢使用骨干提供的那些。这里有什么更好的做法或推荐的方法?
最近,我在开发自己的ExpressJS/Mongoose应用程序,我开始认为我定义了一个Todo
模型,然后是一个公开byId
、byList
等函数的Todos
集合,但后来我想也许我应该使用Mongoose提供的那些?
使用提供的getter/setter的优点是
- 更少的代码,更少的错误
- 获取/设置的标准方式。而不是2(来自框架+自定义)
- 另一个开发人员只需要学习框架,而不是我的自定义代码,就可以了解发生了什么
缺点:
- 稍长的代码
- 少一些什么是私人的什么不是,但我认为这不是很重要。。。动态语言中的esp
再说一遍,这里推荐什么?
如果框架允许,只有在必须修改默认getter/setter的行为时,才能编写自己的getter/setters。
如果不需要,没有理由写它们,IMHO。
相关文章:
- 查看JS对象的所有键,甚至是getter定义的键
- 使用框架/语言中的getter/setter,或者定义自己的显式getter/setters
- 为什么这个 getter 返回未定义
- 在对象上定义 getter,以便所有未定义的属性查找都返回 “”
- 使用 getter 和 setters vs 在 javascript 中定义属性
- 如何定义一个构造函数,该函数使用 getter 和 setter 创建对象
- 为ES5或ES6中对象的嵌套属性简明定义Getter和Setter
- 为AngularJS的子属性定义getter setter
- 在CoffeeScript中为我的单例类定义属性getter
- 如何为已经定义的JavaScript对象定义getter属性
- JavaScript中的自定义类数组getter
- 如何在循环中定义getter和setter
- 如何用这种模式定义内联getter
- JavaScript getter定义为数组而不是函数
- 为无父级局部变量定义 Setter/Getter:不可能
- autogenerated getter是未定义的
- Chrome不会看到通过Object.defineProperty添加getter和setter来重新定义属性
- 在对象函数中定义getter/setter
- 如何为自定义小部件定义自定义getter和setter ?- Dojo
- 为什么";setter是在没有getter的情况下定义的";JSHint错误