首页 > 解决方案 > 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在声明时分配的,因此访问它始终是对相同结构的引用,并且推送它不会有问题。我错过了什么或出错了吗?

谢谢!

标签: javascriptecmascript-6

解决方案


它始终是对相同结构的引用

不,你改变了那个。Something.__someProperty__由于.slice(0).


推荐阅读