猿问

Class内this的指向问题

请问代码中的这句如何理解?
两个this的指向一样吗?
能否分几个关键节点告知这句代码的前后变化、及this的指向变化?

this[this[size]] = item;

资源链接

var size = Symbol('size');


class Collection {

  constructor() {

    this[size] = 0;

  }


  add(item) {

    this[this[size]] = item;

    this[size]++;

  }


  static sizeOf(instance) {

    return instance[size];

  }

}


var x = new Collection();

Collection.sizeOf(x) // 0


x.add('foo');

Collection.sizeOf(x) // 1


Object.keys(x) // ['0']

Object.getOwnPropertyNames(x) // ['0']

Object.getOwnPropertySymbols(x) // [Symbol(size)]


三国纷争
浏览 501回答 1
1回答

慕标琳琳

this 指向一样, 并且从来没有变过.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答