Я пытаюсь вызвать функцию 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>
Есть две основные проблемы
text / javascript
, а не text / jscript
Итак:
function MyObject() {
this.MyMethod = function () {
alert('It works');
}
this.MyMethod(); //should now work
}
var test = new MyObject();
вы поместили вызов частного метода внутри конструктора класса javascript. в этот момент функции еще не инициализированы
, но если вы инициализируете объект следующим образом:
var test = new MyObject();
, а затем выполните следующее:
test.myMethod();
, он будет работать.