鍍金池/ 問答/HTML/ 實(shí)現(xiàn)某個(gè)類的靜態(tài)方法,調(diào)用后可得到此構(gòu)造函數(shù)/class已經(jīng)new了多少個(gè)實(shí)例?

實(shí)現(xiàn)某個(gè)類的靜態(tài)方法,調(diào)用后可得到此構(gòu)造函數(shù)/class已經(jīng)new了多少個(gè)實(shí)例?

調(diào)用:ClassA.getInstanceNumber()

回答
編輯回答
柚稚

吶,這是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());
2018年2月12日 04:13
編輯回答
寫榮

看起來比較適合用 ES6 的修飾器 來做。

@countable
class ClassA {
  // ....
}

let count = 0;
function countable() {
  count++;
}
2017年12月3日 15:11
編輯回答
失魂人
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
2017年12月2日 20:13