js中的面向对象入门

yizhihongxing

一、JavaScript中的面向对象基础

JavaScript是一门面向对象的语言,可以使用类(class)和实例(instance)的概念来组织代码和数据,实现封装、继承和多态等面向对象的特性。在面向对象的编程中,我们通常会定义一个类,然后通过实例化该类,创建一个实例对象,再通过对象的属性和方法来处理数据、执行操作。下面是JS中定义Person类的示例代码:

// 定义Person类
class Person{
    constructor(name, age){
        this.name = name;
        this.age = age;
    }

    introduce(){
        console.log(`我叫${this.name},今年${this.age}岁`);
    }
}

// 创建Person实例
let p1 = new Person('小明', 21);
p1.introduce();

在上面的代码中,使用class关键字定义了一个Person类,包含了构造函数constructor和方法introduceconstructor方法接收两个参数name和age,通过this关键字分别将这两个参数保存在Person类的实例中。introduce方法用来在控制台输出该人物的姓名和年龄。接着通过let关键字定义一个变量p1,表示一个Person实例,通过new关键字创建了该实例,并调用introduce方法输出该实例对象的属性值。

二、JavaScript中的继承

在面向对象编程中,继承是实现代码的重用和扩展的重要手段。JavaScript中的继承通过extends关键字来实现,我们可以创建一个子类继承于父类,来获得父类的属性和方法,并且可以在子类上新增或重写方法,以满足自己的需求。下面是一个定义Student类继承自Person类的示例代码:

// 定义Person类
class Person{
    constructor(name, age){
        this.name = name;
        this.age = age;
    }

    introduce(){
        console.log(`我叫${this.name},今年${this.age}岁`);
    }
}

// 定义Student类继承自Person类
class Student extends Person{
    constructor(name, age, grade){
        super(name, age);
        this.grade = grade;
    }

    introduce(){
        console.log(`我叫${this.name},今年${this.age}岁,读${this.grade}年级`);
    }
}

// 创建一个Student实例
let s1 = new Student('小红', 20, 3);
s1.introduce();

在上面的代码中,定义了两个类PersonStudentStudent类继承自Person类,使用super关键字在构造函数中调用父类的构造函数,并传递参数nameage给父类。在Student类中定义了一个属性grade,表示学生的年级。另外,在Student类中重写了introduce方法,输出了自己的姓名、年龄和年级信息。接着通过let关键字定义一个变量s1,表示一个Student类的实例,通过new关键字创建了该实例,并调用introduce方法输出该实例对象的属性值。

三、示例

1、定义Rectangle类,包含长度和宽度两个属性和一个calculateArea方法,返回该矩形的面积。

class Rectangle{
    constructor(length, width){
        this.length = length;
        this.width = width;
    }

    calculateArea(){
        return this.length * this.width;
    }
}

let r1 = new Rectangle(10, 20);
console.log(r1.calculateArea());

2、定义Circle类继承自Shape类,包含一个半径属性和一个calculateArea方法,返回该圆形的面积。

class Shape{
    area(){
        console.log(`I'm a shape, but no area specified.`);
    }
}

class Circle extends Shape{
    constructor(radius){
        super();
        this.radius = radius;
    }

    area(){
        return Math.PI * this.radius * this.radius;
    }
}

let c1 = new Circle(5);
console.log(c1.area());

上述两个示例代码中分别定义了Rectangle类和Circle类,Rectangle类包含了长度和宽度两个属性和一个calculateArea方法,返回该矩形的面积。Circle类继承自Shape类,包含了一个半径属性和一个calculateArea方法,返回该圆形的面积。在代码中,使用let关键字定义了变量r1c1,分别表示一个Rectangle实例和一个Circle实例,通过new关键字创建了这两个实例,并且调用了它们的calculateArea方法和area方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中的面向对象入门 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • xml转json的js代码

    XML转JSON是开发过程中常见的问题,有时候需要将后端返回的XML数据转换为前端需要的JSON格式。以下是XML转JSON的JS代码的详细攻略: 一、XML转JSON的原理 XML和JSON是两种不同的数据格式,因此需要编写代码将XML转换为JSON格式。XML数据以标签为基础,有嵌套的结构关系,而JSON数据则以键值对为基础,没有嵌套的结构关系。因此,将…

    JavaScript 2023年5月27日
    00
  • BOM系列第二篇之定时器requestAnimationFrame

    下面是关于BOM系列第二篇之定时器requestAnimationFrame的详细讲解: 什么是定时器requestAnimationFrame requestAnimationFrame是浏览器提供的一种类似定时器的 API,它可以让我们方便地控制动画的帧数,实现流畅的动画效果。 requestAnimationFrame的用法 setInterval和s…

    JavaScript 2023年6月11日
    00
  • JavaScript高级程序设计 阅读笔记(十二) js内置对象Math

    以下是对JavaScript高级程序设计中Math对象的详细讲解: 什么是Math对象 Math对象是JavaScript内置的一个全局对象,提供了许多数学计算相关的方法和常量。通过调用Math对象提供的方法和属性,我们可以进行数值的运算、随机数的生成等操作。 常用方法 Math.abs() Math.abs() 方法用于返回一个数的绝对值,即该数与 0 的…

    JavaScript 2023年5月27日
    00
  • JavaScript中清空数组的方法总结

    JavaScript 中清空数组的方法总结 JavaScript 中清空一个数组可以使用多种方法,本文将对常见的清空数组的方式进行总结。 1. 直接使用赋值操作符 可以将一个空数组赋值给目标数组,直接清空数组。 var arr = [1, 2, 3]; arr = []; console.log(arr); // [] 2. 使用数组的splice方法 使用…

    JavaScript 2023年5月27日
    00
  • JS代码判断集锦大全第3/5页

    这篇“JS代码判断集锦大全第3/5页”的攻略是一篇非常详细的教程,下面我将逐步地为您介绍它的主要内容。 攻略概述 这篇攻略主要是针对“JS代码判断集锦大全第3/5页”这一题目,介绍其中一些常见的判断语句和用法。在学习本文之前,您需要具备一定的JavaScript编程基础。 判断语句 判断语句是JavaScript程序中非常重要的部分之一。您可以利用判断语句来…

    JavaScript 2023年5月27日
    00
  • JavaScript实现随机产生字符串的方法分享

    下面是详细讲解“JavaScript实现随机产生字符串的方法分享”的完整攻略: 1. 生成随机字符串的方法 生成随机字符串的方法有很多,其中一种是使用Math.random()方法加上一些简单的操作来生成。 具体实现代码如下: function generateRandomString(length) { var str = ”; var chars = …

    JavaScript 2023年5月28日
    00
  • 通过JS来判断页面控件是否获取焦点

    通过JS来判断页面控件是否获取焦点,可以使用DOM的focus和blur事件进行判断。当页面控件获得焦点时,触发focus事件;当失去焦点时,触发blur事件。下面我将介绍两个使用示例: 判断输入框是否获取焦点 为了判断输入框是否获取焦点,需要为该输入框添加focus和blur事件监听器。当input获取焦点时,显示提示框;当失去焦点时,移除提示框。 代码示…

    JavaScript 2023年6月11日
    00
  • JS中apply()的应用实例分析

    JS中apply()的应用实例分析 什么是apply()? JS中的apply()是Function对象自带的一个方法,它的作用是调用函数并将对象作为第一个参数进行传递,第二个参数是一个包含传递给函数的参数的数组。 语法:function.apply(thisArg, [argsArray]) thisArg:在函数中某个对象将被用作“this”对象。 ar…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部