gpt4 book ai didi

javascript - 默认对象属性

转载 作者:行者123 更新时间:2023-11-29 10:59:07 25 4
gpt4 key购买 nike

我正在玩 ES6 类,为了更好地管理类的数组属性,我用一个对象替换了数组,并添加了所有与数组相关的函数(get、add、remove 等)以及一个数组子-属性:

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 对象默认返回 items 数组?即通过:MyClass.posts我以为我可以用 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);

关于javascript - 默认对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50690769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com