您必须将“类”定义为构造函数,而不是对象文字:
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
而不是在构造函数中声明它们。两者的区别,请参考JavaScript 中使用 'prototype' 与 'this'?.
最后,如果你想坚持你的对象文字,你必须使用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'