javascript - ES6 推送到静态数组属性
问题描述
我有一个这样定义的 ES6 类
const myMixin = (SomeOtherClass) => {
class Something extends SomeOtherClass {
static get __someProperty__() {
return SomeOtherClass.__someProperty__ ? SomeOtherClass.__someProperty__.slice(0) : [ SomeOtherClass.name ];
}
}
...
然后,如果我尝试将一个值推入该数组,然后记录它的值,它保持不变。
Something.__someProperty__.push('someValue');
console.log(Something.__someProperty__);
//output: ['SomeOtherClass'], instead of ['SomeOtherClass', 'someValue']
我会假设由于该属性的值__someProperty__
是Array
在声明时分配的,因此访问它始终是对相同结构的引用,并且推送它不会有问题。我错过了什么或出错了吗?
谢谢!
解决方案
它始终是对相同结构的引用
不,你改变了那个。Something.__someProperty__
由于.slice(0)
.
推荐阅读
- c++ - C++ 是否有定义的方法来传递指向类成员对象的成员函数的指针?
- c++ - 不能创建一个类的多个实例?
- angular - Angular 8 - 在 Angular 材质的网格中显示图像
- azure-ad-b2c - 我可以提前禁用 Azure B2C 实例中的用户吗?
- web-scraping - Scrapy 抓取多个页面
- microsoft-graph-api - transitiveMemberOf $filter 仅在您是直接成员时有效
- macos - mac终端路径中的faroarm-laptop是什么?我的用户名@faroarm-laptop ~ %
- azure - 我可以使用 Azure Policy 来审核或强制执行 Azure 活动日志诊断设置吗?
- css - 使用 CSS 在下拉菜单中更改照片
- java - java数组字节文件到人类可读