猿问

实现某个类的静态方法,调用后可得到此构造函数/class已经new了多少个实例?

调用:ClassA.getInstanceNumber()

慕侠2389804
浏览 529回答 3
3回答

幕布斯7119047

呐,这是es6不用装饰器node和最新chrome可用版class ClassA {  constructor() {    ClassA.instanceNumber = (ClassA.instanceNumber || 0) + 1;  }  static getInstanceNumber() {    return ClassA.instanceNumber || 0;  }}console.log(ClassA.getInstanceNumber());let a = new ClassA();console.log(ClassA.getInstanceNumber());let b = new ClassA();console.log(ClassA.getInstanceNumber());

红颜莎娜

看起来比较适合用 ES6 的修饰器 来做。@countableclass ClassA {  // ....}let count = 0;function countable() {  count++;}

慕仙森

var Test = (function () {    var count = 0;    function Test() {        if (!(this instanceof Test)) {            return new Test();        }        count++;    }    Test.getInstanceNumber = function () {        return count;    }    return Test;})();Test();new Test();new Test();console.log(Test.getInstanceNumber());//3
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答