具有功能的Javascript对象和此

时间:2018-05-29 11:57:27

标签: javascript function object this

我正在学习Javascript的对象。 我在下面构建了一些代码。当我删除this.recall =召回时,它不起作用。但是,当我添加this.recall =召回时,整个代码都有效。我不知道为什么我需要把this.recall = recall来获取结果,因为它在调用函数时没有任何值。



<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>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

为了调用函数,它必须在调用者的上下文中。 这里,在引用变量man中返回新的Private对象。现在我们可以说人是一个对象。如果man对象没有召回方法,则无法调用它。 因此,当从Private函数返回时,如果召回函数是对象的一部分,它就可以工作。

答案 1 :(得分:0)

这是你班级的构造函数:

      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');

答案 2 :(得分:0)

var man= new Private('170cm','60kg','26-year-old');

创建一个对象名为Private,允许3个字段:

 this.height
 this.weight
 this.age

AND调用函数的字段。这意味着如果您删除this.recall=recall;,则无法从recall

致电man