我正在尝试使用javascript。我正在尝试制作一个“课堂”,但它并没有像它应该的那样工作。我在启动MyClass的新实例时遇到了问题。看到js小提琴。可以像在php中一样向MyClass添加构造函数吗? 我也不确定这是在javascript中定义“类”的方式。所以任何帮助都会受到更多的赞赏。
http://jsfiddle.net/kasperfish/JnvFS/
var MyClass={
test:'hello',
hallo: function(){
alert(this.test);
},
setTest: function(x){
this.test=x;
}
}
MyClass.hallo();
MyClass.setTest('world');
MyClass.hallo();
//not working because MyClass is/does not have a constructor
x= new MyClass;//*
x.hallo();
* firebug:TypeError:MyClass不是构造函数
答案 0 :(得分:2)
在JavaScript中,类的构造函数只是一个函数,成员可以在那里设置,也可以使用prototype
对象设置。例如:
function MyClass(someArgument) {
// construction, init members of this
this.someField = someArgument;
this.test = 'a test';
}
// in addition, all members of `prototype` are automatically set on every
// new instance of MyClass.
MyClass.prototype.hallo = function(){
alert(this.test);
};
然后
var inst = new MyClass(42);
inst.hallo();
我建议你在JavaScript中阅读基于原型的OOP。它绝对不同于您可能习惯使用的PHP,它通常感觉不太直观。
答案 1 :(得分:1)
你必须让你的MyClass
对象成为这样的函数:
var MyClass = function() {
this.test = 'Hello';
};
MyClass.prototype.hello = function() {
alert(this.test);
};
MyClass.prototype.setTest = function( x ) {
this.test = x;
};
var myInstance = new MyClass();
myInstance.hello();
myInstance.setTest('World');
myInstance.hello();
答案 2 :(得分:1)
如果您想使用构造函数来创建对象的实例,那么尝试使用函数,construtor创建您的“类”,也许这样:
function MyClass(){
this.test ='hello';
this.hallo = function(){
alert(this.test);
};
this.setTest = function(x){
this.test=x;
};
}
var myClassInstance = new MyClass();
myClassInstance.hallo();
myClassInstance.setTest('world');
myClassInstance.hallo();
我希望这有帮助