我正在学习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;
答案 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