1
binux 2020-01-04 08:18:13 +08:00
private?
|
2
binux 2020-01-04 08:19:04 +08:00 1
protected?
|
3
Justin13 2020-01-04 08:47:51 +08:00 via Android
做不到
|
4
creanme 2020-01-04 09:08:00 +08:00
感觉你说的有点像 static 呢?
|
5
xiaoming1992 OP 感谢大家,是 protected
|
6
KuroNekoFan 2020-01-04 09:12:09 +08:00 via iPhone
云了一下感觉可以在 constructor 里用访问器
|
7
H15018327040 2020-01-04 09:16:23 +08:00
protected 权限的属性实例也能访问吧
|
8
xiaoming1992 OP @H15018327040 #7 可以吗?我看文档不能访问的啊(好像只是在 ts 的语法里限制访问,从 js 引用过来之后强行访问还是可以访问的,好像?我没看过转换后的源码,不过这就够了)
|
9
giuem 2020-01-04 10:54:17 +08:00 via iPhone
用 Symbol
|
10
xiaoming1992 OP @giuem 不太懂,用 Symbol 的话,难道是
```javascript const SymbolProp = Symbol("some prop") class A { [SymbolProp]: "some val"; } ``` 如果是这样的话,我得把 SymbolProp 导出去,子类要用这个属性,还得从这儿导入才能用吗?那这样就有些麻烦了哦 |
12
H15018327040 2020-01-04 12:03:41 +08:00
@xiaoming1992 protected 是父类子类都能访问,静态属性也能通过实例访问,暂时没有想到满足你需求的解决方案,或者说这个需求有问题。
|
13
H15018327040 2020-01-04 12:10:58 +08:00
@xiaoming1992 已找到方法,protected static _name 定义一个只在类和子类中不通过实例可以访问的属性,然后在类的构造函数中删除这个属性,那通过 new 产生的实例都没有这个属性,但是可以通过类访问。
|
14
xiaoming1992 OP @H15018327040 谢谢,protected 就可以啊
|
15
H15018327040 2020-01-04 13:53:37 +08:00
@xiaoming1992 protected 在实例中可以访问
|
16
xiaoming1992 OP @H15018327040 看文档说不可以,自己试了试,也确实不可以啊?
|