私たちのコードベースでは、多くの開発者がメンバー変数の最初の文字としてアンダースコアを使用して、一般の使用を思いとどまらせていることがわかりました。通常は、オブジェクトのメソッドにアクセスできるローカル変数を宣言することをお勧めしますが、この場合、すべてのメソッドがプロトタイプで定義されているため、これは不可能と思われます。これが例です。
MyContrivedWidget = function(container) {
this._container = jQuery(container);
}
MyContrivedWidget.prototype = {
draw: function() {
var link = jQuery(document.createElement('a'))
.html('some contrived text')
.attr('href', '#')
.appendTo(this._container);
}
}
プロトタイプオブジェクトを使用する理由は複数ありますが、最も説得力のあるのは、プロトタイプチェーンを使用すると、メソッドの継承とオーバーライドが容易になることです。1つのプラットフォームに複数の製品があり、特定の機能をオーバーライドしながら多くのJavaScriptを再利用したい場合があるため、これは私たちにとって良いことです。
だから私の質問は、プライベートでなければならない変数をパブリックにアクセスできるようにすることなく、プロトタイプチェーンのすべての利点をどのように得ることができるかということです。