1

私はJavaScriptの完全な初心者です。以下のテンプレートと JS 関数では、person1 の名前と person2 の名前を表示して、それらが等しいかどうかを表示しようとしています。

<!DOCTYPE html>
<html>
<head>
<script>
function Person(name, age, job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert("in function" + this.name);
    };
}
var person1 = new Person("Nicholas", 29, "Software Engineer");
var person2 = new Person("Greg", 27, "Doctor");
alert(person1.sayName());
alert(person2.sayName());
alert(person1.sayName() == person2.sayName() );
</script>
</head>
<body>
<div>

</div>
</body>
</html> 

しかし、私はこれらのアラートを1つずつ受け取っています。

in functionNicholas

undefined

in functionGreg

undefined

in functionNicholas

in functionGreg

true

制御フローを教えてください。質問がばかげて基本的すぎる場合はご容赦ください。ありがとう

未定義のアラートが 2 回表示される理由がわかりません。

4

6 に答える 6

1

以下を使用する必要があります。

    function Person(name, age, job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert("in function" + this.name);
    };
}
var person1 = new Person("Nicholas", 29, "Software Engineer");
var person2 = new Person("Greg", 27, "Doctor");
person1.sayName();
person2.sayName();
于 2013-09-29T06:01:38.237 に答える