我经常在我的 Java 代码中使用这种策略,以使 Collection 仅供外部世界读取,但避免大/经常克隆:
public abstract class MyClass {
List<Long> myIds;
public Collection<Long> getIds() {
return Collections.unmodifiableCollection(this.myIds);
}
}
我想在我的 JS 类中遵循相同的模式。这将使我的业务逻辑代码更安全、更清晰,因为我将能够在拥有字段的类中控制对我的列表(推送/拼接等)的每次更改。
目前,列表使用“私有”字段,并使用 get-set 函数从外部访问它们。唯一缺少的链接是一些相当于 java 的 Collections.unmodifiableCollection。不会复制整个列表的东西(例如 slice()),并且不会影响原始字段(例如 Object.freeze())。
JS有这样的功能吗?如果没有,有人怎么能达到类似的效果(自定义迭代?)
萧十郎
相关分类