Comments (8)
已经支持,见第三个参数
from oo.
艾玛,文档没加上,手机不方便写字,白天说
from oo.
代码中是这样的:
obj[setter] = !accessor || typeof accessor.set !== 'function' ? simpleSetter(name) : accessor.set;
但是我如果提供了set
,又不知道怎么实现,因为没地方让我放这个value
from oo.
确实没法满足隐藏属性的需求,我改改,大概按第二种模式
from oo.
这个 feature 似乎 readme 里没有?
from oo.
这个 feature 似乎 readme 里没有?
带逻辑的 hook 还没实现,因为想着如果能支持 private 成员的话,这个可能没有太大意义了;
目前第三个参数只支持传入 setter/getter 覆盖默认的 simpleAccessor,这块文档确实遗漏了,我后面补补
from oo.
目测覆盖 simpleAccessor
的话得把 this.__eooPrivateMembers__
传给 accessor,但是这样就不是 private
了……所以第三个参数目前感觉没啥意义?
from oo.
目测覆盖 simpleAccessor 的话得把 this.eooPrivateMembers 传给 accessor,但是这样就不是 private 了……所以第三个参数目前感觉没啥意义?
按 @otakustay 的意思是,第三个参数是个 hook,在eooPrivateMembers上添加私有成员,外部使用的时候只能通过 set/get去操作这个成员,无法直接获取。
如果支持了 private 特性的话,eooPrivateMembers就没有必要了。
目前第三个参数只是可以提供自定义的 setter/getter,可以在这里面做一些额外的逻辑,至于成员的存储还是需要使用者自己来做了,因为目前没有将eooPrivateMembers暴露给 setter/getter
from oo.
Related Issues (20)
- 提供直接继承静态对象的功能 HOT 4
- Class.static的实现与Object.create有些不一致
- 基类并非由oo创建的时候不能使用$super HOT 3
- Object.create第一个参数传入非object/function类型参数 HOT 3
- 是否增加 Class.prototype.extend方法
- 增加 defineMembers 方法
- 增加Class.defineStatics方法 HOT 1
- 增加快捷定义 accessor 方法 HOT 10
- 一个非oo框架实现继承的class,继承自一个oo框架定义的class,会出错 HOT 4
- 增加元数据? HOT 1
- 研究下Traits
- 增加一个可用于class上的defineAccessor HOT 3
- 定义私有成员 HOT 11
- License HOT 2
- 支持通过defineProperty的getter/setter定义 HOT 2
- 基于类 weakmap 的私有成员实现 HOT 5
- 收集一下对ES Next为开发语言时oo库的需求 HOT 1
- Object.setPrototypeOf与oo生成的class冲突
- 在支持class的环境下,使用oo继承一个class后无法创建实例 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oo.