JavaScript对象字面量和构造函数的练习

这篇博客探讨了JavaScript中的对象字面量和构造函数的使用,通过实例介绍了如何利用它们进行底面积和体积的计算。文章分为三个部分进行详细讲解。
摘要由CSDN通过智能技术生成
1. 使用字面量的形式封装一个表示对象的学生, 提供如下属性和方法:
   属性: 姓名, 年龄, 性别, 语文成绩, 数学成绩, 计算机成绩
   方法: 计算自己的成绩的方法
        平均成绩的方法
        最高分的方法
        最低分的方法

2. 再使用构造函数的方式完成上面的题目.


3. 使用构造函数方法的方式来表示一个圆柱体
    属性: 底面圆, 高

    方法: 计算底面积, 计算体积


1.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>对象字面量的练习</title>
</head>
<body>
<!--题目:使用字面量的形式封装一个表示对象的学生, 提供如下属性和方法:
    属性: 姓名, 年龄, 性别, 语文成绩, 数学成绩, 计算机成绩
    方法: 计算自己的成绩的方法
        平均成绩的方法
        最高分的方法
        最低分的方法

-->
<script>
    //计算最高分函数
    function high(x,y,z) {
        var big;
        if(x >= y){
            big = x;
        }else{
            big = y;
        }
        if(z > big){
            big=z;
        }
        return big;
    }
    //计算最低分函数
    function low(x,y,z) {
        var small;
        if(x >= y){
            small = y;
        }else{
            big = x;
        }
        if(z < small){
            small=z;
        }
        return small;
    }

    //对象字面量
    var stu = {
        name:"lvya",
        age:18,
        gender:"male",
        language:90,
        math:80,
        computer:70,
        workAve:function () {
            return (this.language + this.computer + this.math)/3;
        },
        highestScore:function () {
            return (high(this.language,this.math,this.computer))
        },
        lowestScore:function () {
            return (low(this.language,this.math,this.computer))
        }
    }

    console.log("平均分:"+stu.workAve());
    console.log("最高分:"+stu.highestScore());
    console.log("最低分:"+stu.lowestScore());
</script>
</body>
</html>

2.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>构造函数练习</title>
</head>
<body>
<!--题目:使用构造函数的形式封装一个表示对象的学生, 提供如下属性和方法:
   属性: 姓名, 年龄, 性别, 语文成绩, 数学成绩, 计算机成绩
   方法: 计算自己的成绩的方法
        平均成绩的方法
        最高分的方法
        最低分的方法
-->

<script>
    //计算最高分函数
    function high(x,y,z) {
        var big;
        if(x >= y){
            big = x;
        }else{
            big = y;
        }
        if(z > big){
            big=z;
        }
        return big;
    }
    //计算最低分函数
    function low(x,y,z) {
        var small;
        if(x >= y){
            small = y;
        }else{
            big = x;
        }
        if(z < small){
            small=z;
        }
        return small;
    }

    //构造函数学生类,这里没有把三个成绩另外包含成单独封装,
    // 也可以把成绩抽象出来,这样会更体现面向对象思维
    function stu(name,age,gender,language,math,computer) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.language = language;
        this.math = math;
        this.computer=  computer;
        this.workAve = function () {
            return (this.computer+this.math+this.language)/3;
        }
        this.highestScore = function () {
            return (high(this.language,this.math,this.computer));
        }
        this.lowestScore = function () {
            return (low(this.language,this.math,this.computer));
        }
    }

    //new出对象
    var stu1 = new stu("lvya",18,"male",90,80,70);

    console.log("平均分:"+stu1.workAve());
    console.log("最高分:"+stu1.highestScore());
    console.log("最低分:"+stu1.lowestScore());
</script>
</body>
</html>

3.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>构造函数-圆柱体</title>
</head>
<body>
<!--题目: 使用构造函数方法的方式来表示一个 圆柱体(cylinder) 圆(circle)
    属性: 底面圆, 高
    方法: 计算底面积, 计算体积
    -->
<script>
    //点的构造函数
    function Pointer(x,y) {
        this.x = x;
        this.y = y;
    }

    //圆的构造函数
    function Circle(p,r) {
        this.p = p;
        this.r =r;
        this.area = function () {
            return this.r **2*Math.PI;
        }
    }

    //圆柱的构造函数
    function Cylinder(circle,height) {
        this.circle = circle;
        this.height = height;
        this.area = function () {
            return this.circle.area();     //(底面积,不是表面积,在这也可以定义表面积,注意)其实是多余的,但题目要求要这个方法
        }
        this.volume = function () {
           return this.area()*this.height;
        }
    }
    //NEW的对象:点的对象,圆的对象,圆柱形对象
    var p1 = new Pointer(0,0);
    var c1 = new Circle(p1,1);
    var cd = new Cylinder(c1,5);

    //  output information
    console.log("圆柱形底面积: "+cd.area());
    console.log("圆柱形体积: "+cd.volume());


</script>
</body>
</html>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值