Wenn ich versuche, objektorientierten reinen JS mit privaten Methoden zu tun, ich die folgendenprivate Funktionen in Object-Oriented JavaScript
(function(exports) {
var Foo = function(num) {
this.num = num
};
var addTwo = function() {
this.num += 2;
};
Foo.prototype.addFour = function() {
addTwo.call(this);
addTwo.call(this);
};
exports.Foo = Foo;
})(this);
häufig tue Dann kann ich
var foo = new Foo(0);
foo.addFour();
console.log(foo.num); // => 4
Es tut fühlt sich sauber an und ermöglicht es mir, wirklich private Funktionen zu erstellen, anstatt ein Präfix _
zu verwenden, um anzuzeigen, dass eine Methode als privat behandelt werden sollte (aber tatsächlich nicht).
Damit kann ich wissen, welche Funktionen ich für Unit-Test benötige und welche nicht. Es hindert mich auch daran, versucht zu werden, Funktionen zu benutzen, die privat sein sollten. Aber ich sehe dieses Muster nicht woanders.
Warum also nicht andere dieses Muster verwenden und was tun sie stattdessen?