web-dev-qa-db-ja.com

プライバシーをサポートしない言語でプライベートメソッドに名前を付ける方法は?

プライベート修飾子を持たない言語でプライベートメソッドに名前を付けるためのコーディング標準は何ですか?具体的には、Javascriptについて話しています。以下では、プライベートメソッドの名前の最後にアンダースコアを配置しましたが、同僚は通常、アンダースコアはクラスフィールド用であることを教えてくれました。

var MyClass = Class.create({
    initialize: function() {
        alert('constructor');
    },
    publicMethod: function() {
        alert('i am public');
    },
    privateMethod_: function() {
        alert('i am private');
    }
});
6
JoJo

みんながコメントで言ったように、ほとんどの人(そして一部の言語)は単一の下線を使用しています。

2
grisevg

[〜#〜] edit [〜#〜]:@Raynorによる以下のコメントによると、以下のアプローチはプライバシーを実現する良い方法ではありませんJavaScript。参照: http://blog.jcoglan.com/2012/01/19/the-cost-of-privacy/


私はこの規則を使用します:

var MyObject = (function() {
  var initFunction = function() { /* init some stuff */ };
  var privateFunction = function() { /* state secrets */ };

  return {
    init: initFunction
  };
})();

パブリック関数のみが返されます。ご想像のとおり、このスタイルを使用する場合はメソッドのみを使用する傾向があり、パブリックプロパティは使用しません。

3
Ross Smith