クロージャ内にいくつかのプライベート変数を隠そうとしているコードに取り組んでいます。重要なのは、環境がメモリに関してかなり制約されていることです。そのため、クラスの全体的なフットプリントを低く抑えることにも関心があります。
オブジェクト上のすべてのメソッドと変数をパブリックにするだけの場合と比較して、クロージャを使用してプライベートインスタンスの変数とメソッドを非表示にすることの影響は何ですか?クロージャを使用しているインスタンスは、クロージャを使用していないインスタンスよりも多くのメモリを消費しますか?もしそうなら、私はどれだけ多くのメモリを使用すると予想しますか?
私のコードは次のようになります
function Foo() {
// private variables
var status = 3;
var id = 4;
...
...
// private methods
var privateMethod = function () {
// do something awesome
}
...
// a whole bunch of these
// public methods
this.publicDriver = function () {
privateMethod();
}
.. a few more of these
};
対
function Bar() {
// only define public variables
this.x = 1;
this.y = 3;
}
Bar.prototype.method1 = function () {
// blah;
}
....続けて、残りのすべてのメソッドを定義します。