オブジェクトリテラルではなく、コンストラクター関数として「クラス」を定義する必要があります。
var MyClass = function(){
    this.init = function () {
        this.customer = null;
    };
    this.test = function(data){
      alert('testing');
    };
};
var testClass = new MyClass();
testClass.init();
testClass.customer = 'John B';
testClass.test(); //alerts 'testing'
次に、init関数は実際には必要ありません。そのロジックをコンストラクター自体に追加できます。
var MyClass = function(){
    this.customer = null;
    this.test = function(data){
      alert('testing');
    };
};
var testClass = new MyClass();
testClass.customer = 'John B';
testClass.test(); //alerts 'testing'
MyClass.prototypeコンストラクター内でメソッドを宣言する代わりに、メソッドを追加することもできます。この 2 つの違いについては、JavaScript で「プロトタイプ」と「これ」を使用しますか? を参照してください。.
最後に、オブジェクト リテラルに固執する場合は、次を使用する必要がありますObject.create。
var myclass = {
    init:function () {
        this.customer = null;
    },
    test : function(data){
      alert('testing');
    }
};
var testClass = Object.create(myclass);
testClass.customer = 'John B';
testClass.test(); //alerts 'testing'