我试图从一个对象内部调用函数MyMethod,但是下面的语法都不起作用。下面一定有一个非常明显的错误,但我看不到它。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/jscript">
function MyObject() {
//how do I get one of these to work??
this.MyMethod; //does not work
this.MyMethod(); //does not work either
MyMethod(); //does not work either
this.MyMethod = function () {
alert('It works');
}
}
var test = new MyObject();
</script>
</head>
<body>
</body>
</html>
发布于 2010-08-22 11:47:30
主要有两个问题
在定义方法后,MIME类型是text/javascript
,而不是text/jscript
所以:
function MyObject() {
this.MyMethod = function () {
alert('It works');
}
this.MyMethod(); //should now work
}
var test = new MyObject();
发布于 2010-08-22 11:57:10
您已经将对私有方法的调用放在了javascript类的构造函数中。此时,函数尚未初始化
但是如果你像这样初始化对象:
var test = new MyObject();
然后执行以下操作:
test.myMethod();
看起来不错。
发布于 2016-05-11 09:30:22
var MyObject = function MyObject() {
this.MyMethod = function () {
alert('It works');
} }
var test = new MyObject(); test.MyMethod();
上面的内容就可以了。或者你可以创建一个构造函数并在其中调用这个方法。因此,在创建对象时,它将调用this.MyMethod()
https://stackoverflow.com/questions/3541348
复制