Javascript объект с функцией и это - PullRequest
0 голосов
/ 29 мая 2018

Я изучаю Объект Javascript.Я построил некоторые кодировки ниже.Когда я удаляю this.recall = вспомните, это не сработало.Но когда я добавляю this.recall =all, весь код работал.Я не знаю, почему мне нужно поместить this.recall = rev, чтобы получить результат, потому что он не имеет никакого значения при вызове функции.

<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
      function recall (){
        document.write('the height is:'+ this.height+'<br>');
        document.write('the weight is:'+ this.weight+'<br>');
        document.write('the age is:'+ this.age+'<br>');
      }
      function Private(height,weight,age){
        this.height=height;
        this.weight=weight;
        this.age=age;
        this.recall=recall;
      }
    </script>
  </head>
  <body>
    <script type="text/javascript">
      var man= new Private('170cm','60kg','26-year-old');
      man.recall();
    </script>
  </body>

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Это конструктор вашего класса:

      function Private(height,weight,age){
        this.height=height;
        this.weight=weight;
        this.age=age;
        this.recall=recall;
      }

Этот оператор используется для добавления метода в класс:

this.recall=recall;

Таким образом, вы можете вызывать функцию после инициализацииобъект класса:

var man= new Private('170cm','60kg','26-year-old');
0 голосов
/ 29 мая 2018
var man= new Private('170cm','60kg','26-year-old');

создает имена объектов Private, которые допускают 3 поля:

 this.height
 this.weight
 this.age

И поле, которое вызывает функцию.Это означает, что если вы удалите this.recall=recall;, вы не сможете позвонить recall из man

0 голосов
/ 29 мая 2018

Чтобы вызвать функцию, она должна быть в контексте вызывающей стороны.Здесь новый закрытый объект возвращается в ссылочной переменной man.Теперь мы можем сказать, что человек - это объект.если объект man не имеет метода отзыва, он не может вызвать его.Таким образом, при возврате из функции Private, если функция отзыва является частью объекта, она работает.

...