2016-09-19 20 views
0

以下のコードでは、インスタンス化されたすべてのページオブジェクトは静的変数 'nextId'からIDを取得します。 nextIdをリセットする最良の方法は何ですか?インスタンス化されたオブジェクトからアクセスされるため、私はそれをやっているのが好きではありません。私はむしろ次のようなことをしたい:プロトタイプパターンでプライベート静的変数を作成する方法

Page.reset()。どのように可能ですか?

https://plnkr.co/edit/heOz52QxK6CExhe8Hdfm?p=preview

var Page = (function() { 

var nextId = 0; 

function Page(content) { 
    this.id = nextId++; 
    this.content = content; 
} 

Page.prototype.reset = function() { 
    nextId = 0; 
} 

Page.prototype.show = function() { 
    console.log(this.content + ' is ' + this.id); 
} 

return Page; 



}()) 


var a = new Page('a') 
a.show() // a is 0 

var b = new Page('b') 
b.show() // b is 1 

var c = new Page('c') 
c.show() // c is 2 

a.reset() 

var d = new Page('d') 
d.show() // d is 0 
+1

あなたは、静的メソッドをしたい場合は、単に入れていませんそれはプロトタイプではなく、 'Page'自体にありますか? – Bergi

答えて

0

ページオブジェクト上ではなく、それのプロトタイプ上)(を#RESETを定義します。

Page.reset = function() { 
    nextId = 0; 
} 
関連する問題