Javascript - Как вы вызываете функцию внутри класса из этого класса?

Я пытаюсь вызвать функцию 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>
22
задан haffax 22 August 2010 в 11:49
поделиться

2 ответа

Есть две основные проблемы

  1. Тип MIME - text / javascript , а не text / jscript
  2. Вы определяете метод после того, как пытаетесь назовите это

Итак:

  function MyObject() {
    this.MyMethod = function () {
      alert('It works');
    }
    this.MyMethod(); //should now work
  }

  var test = new MyObject();
27
ответ дан 29 November 2019 в 05:21
поделиться

вы поместили вызов частного метода внутри конструктора класса javascript. в этот момент функции еще не инициализированы

, но если вы инициализируете объект следующим образом:

var test = new MyObject(); 

, а затем выполните следующее:

test.myMethod();

, он будет работать.

2
ответ дан 29 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: