javascript - 默认对象属性
问题描述
我正在使用 ES6 类并更好地管理类的数组属性,我用一个对象替换了数组,并添加了所有与数组相关的函数(获取、添加、删除等)以及数组子属性:
class MyClass {
constructor () {
this.date_created = new Date()
}
posts = {
items: [],
get: () => {
return this.posts.items
},
add: (value) => this.posts.items.unshift(value),
remove: (index) => this.posts.items.splice(index, 1)
}
}
所以它让我思考:有没有办法设置该posts
对象以默认返回项目数组?即通过:MyClass.posts
我以为我可以用 the 来欺骗它,get()
但没有用。
解决方案
如果您想保持实际数组隐藏且不可触摸,除非通过方法,它必须在构造函数中声明。任何改变它的函数也必须在构造函数中声明。如果该项目要公开访问,则必须附加到this
.
class Post extends Array
{
add(val)
{
this.unshift(val);
}
remove()
{
this.shift();
}
}
class MyClass
{
constructor()
{
this.date_created = new Date()
this.post = new Post();
}
}
let x = new MyClass();
console.log(x.post);
x.post.add(2);
console.log(x.post);
推荐阅读
- java - 如何在 Elasticsearch 中管理值的自动排序
- c++ - const_iterator 的 ++ 运算符如何用于向量
在 C++ 标准库中? - python - 如何使用 H2o 库获取 GBM 模型上的数据
- flutter - 在 Flutter DropdownButtonFormField 中获取多个值
- c++ - 为什么 fftw 在 vscode 中总是未定义的引用?
- docker - Docker - 无论框架如何设置多个项目(在 php 上)
- c# - Shaded pictures on focused item in collection view
- python - 最多 X 个值的平均值,然后与最后一个值取平均值?
- c# - linq: from object in an object to just an object
- javascript - 如何使用 Chart.js 创建这样的条形图?