html5网页制作+javascript

利用javascript自定义一个学生对象,其属性有学号、姓名、性别、出生日期、一门课程的成绩(满分100分),其方法有学习(学习一次加一次分)、计算年龄(计算此时的年龄)。对学生对象进行实例化后,打印其学习成绩和年龄,请给答案谢谢。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>计算</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>

<body>
<script>
function student(serialNumber, name, sex, birthday, score) {
this.serialNumber = serialNumber;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.score = score;
}

student.prototype.getAge = function() {
var birthday = new Date(this.birthday.replace(/-/g, "\/"));
var d = new Date();
var age =
d.getFullYear() -
birthday.getFullYear() -
(d.getMonth() < birthday.getMonth() ||
(d.getMonth() == birthday.getMonth() &&
d.getDate() < birthday.getDate())
? 1
: 0);
return age;
}

student.prototype.study = function() {
this.score++;
}
var obj = new student(1, '张三', '男', '1990-01-01', 65);
console.log('入参:', 1, '张三', '男', '1990-01-01', 65);
console.log('年龄:', obj.getAge());
obj.study();
console.log('学习:', obj.score);
obj.study();
console.log('学习:', obj.score);

var obj2 = new student(2, '王五', '女', '1970-01-01', 85);
console.log('入参:', 2, '王五', '女', '1970-01-01', 85);
console.log('年龄:', obj2.getAge());
obj2.study();
console.log('学习:', obj2.score);
obj2.study();
console.log('学习:', obj2.score);
obj2.study();
console.log('学习:', obj2.score);
</script>
</body>
</html>

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-08
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
<script type="text/javascript">
 function Student(id, name, gender, birthday, score) {
        this.id = id;
 this.name = name;
 this.gender = gender;
 this.birthday = birthday;
 this.score = score;
 this.study = function () {
            this.score = this.score === 100 ? this.score : this.score += 1;
 };
 this.getAge = function () {
            return new Date().getFullYear() - new Date(birthday).getFullYear()
        };
 }
 
    var student = new Student(1,'张三','男','1996-2-12',20);
 console.log('学习成绩:'+student.score);
 console.log('年龄:'+student.getAge());
 student.study();
 console.log('学习成绩:'+student.score); //学分加1
 student.study();
 console.log('学习成绩:'+student.score); //学分加1
</script>
<body>
请打开浏览器控制台查看日志输出效果。
</body>
</html>

本回答被提问者采纳
第2个回答  2019-04-07
let student = new Object;
student.no = 1;
student.name = "大企鹅";
student.sex = "男";
student.born = "1995-09-25";
student.score = 0;
student.learn = function () {
    student.score += 10
};
student.age = function () {
    let returnAge;
    // 根据生日计算年龄("1995-09-25")
    //以下五行是为了获取出生年月日,如果是从身份证上获取需要稍微改变一下
    let strBirthdayArr = student.born.split("-");
    let birthYear = strBirthdayArr[0];
    let birthMonth = strBirthdayArr[1];
    let birthDay = strBirthdayArr[2];
    d = new Date();
    let nowYear = d.getFullYear();
    let nowMonth = d.getMonth() + 1;
    let nowDay = d.getDate();
    if (nowYear == birthYear) {
        returnAge = 0;//同年 则为0岁
    } else {
        let ageDiff = nowYear - birthYear; //年之差
        if (ageDiff > 0) {
            if (nowMonth == birthMonth) {
                let dayDiff = nowDay - birthDay;//日之差
                if (dayDiff < 0) {
                    returnAge = ageDiff - 1;
                } else {
                    returnAge = ageDiff;
                }
            } else {
                let monthDiff = nowMonth - birthMonth;//月之差
                if (monthDiff < 0) {
                    returnAge = ageDiff - 1;
                } else {
                    returnAge = ageDiff;
                }
            }
        } else {
            returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天
        }
    }

    return returnAge;//返回周岁年龄
};
document.body.innerHTML += student.score + "<br>";
document.body.innerHTML += student.age();

本回答被网友采纳
相似回答