js中的面向对象入门

一、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日

相关文章

  • JS字符串补全方法padStart()和padEnd()

    一、JS字符串补全方法概述 在 ES2017 中,新增了两个字符串方法:padStart 和 padEnd。这两个方法主要用于在字符串开头或结尾填充指定的字符串使其达到给定的长度。这些方法可以很方便地增强字符串格式化的能力。 padStart():在当前字符串开头填充指定的字符串,直到达到指定的长度。如果当前字符串的长度大于或等于指定的长度,则返回原始字符串…

    JavaScript 2023年5月28日
    00
  • 使用JS获取SessionStorage的值

    获取SessionStorage的值是前端开发过程中常用的操作之一,下面是使用JavaScript获取SessionStorage的详细步骤: 1. 确认SessionStorage已经存储了值 在执行获取SessionStorage的值之前,我们需要先确认SessionStorage中已经存储了需要获取的值。存储SessionStorage的方式一般有两种…

    JavaScript 2023年6月11日
    00
  • JavaScript中解析JSON数据的三种方法

    JavaScript中解析JSON数据的三种方法涉及到解析JSON的格式,这里我们假设需要解析的JSON数据为以下格式: { "name": "John Doe", "age": 30, "isAdmin": true, "hobbies": [ "…

    JavaScript 2023年5月27日
    00
  • 详解JS中的对象字面量

    详解JS中的对象字面量 在Javascript中,对象是最常见的数据类型之一,它可以用来表示一组有序的属性集合,属性可以是任何数据类型,包括数字、字符串、函数等。对象字面量是一种定义Javascript对象的方式,它可以简单地创建对象并设置属性和方法。 基本定义语法 使用对象字面量的基本语法如下: let objectName = { property1: …

    JavaScript 2023年5月27日
    00
  • Java 正则表达式学习总结和一些小例子

    Java 正则表达式学习总结和一些小例子 正则表达式是用于字符串匹配和替换的一种表达式语言。Java 中使用 java.util.regex 包来实现正则表达式。这篇文章将会总结 Java 正则表达式的常见语法和使用方法,并且提供一些示例代码来说明这些概念。 Java 正则表达式语法 Java 正则表达式的语法相对复杂,但它也为我们提供了强大的功能和灵活性。…

    JavaScript 2023年6月10日
    00
  • JS实现快速的导航下拉菜单动画效果附源码下载

    下面是 JS 实现快速的导航下拉菜单动画效果的完整攻略: 一、思路 首先,我们需要给下拉菜单添加一个点击事件,并在点击后显示子菜单; 接着,使用 CSS 中的 transition 属性实现下拉菜单的动画效果; 最后,用 JS 控制下拉菜单的显示和隐藏。 二、实现步骤 2.1 HTML 结构 首先,我们需要在 HTML 中添加一个导航栏和下拉菜单。 <…

    JavaScript 2023年6月11日
    00
  • cypress中丰富的调试工具使用方法

    Cypress是一个开源的前端自动化测试框架,其提供了丰富的调试工具。本文将详细讲解Cypress中这些调试工具的使用方法。 1. 使用Chrome开发者工具 Cypress默认使用Chrome来运行测试,因此我们可以直接使用Chrome开发者工具来调试测试代码。在测试代码中添加断点,运行测试时会进入断点处,从而方便我们调试代码。 示例: describe(…

    JavaScript 2023年6月11日
    00
  • javascript实现回到顶部特效

    当页面内容比较长时,用户需要不断地向下滚动页面才能浏览全部内容,但有时候用户想快速回到页面顶部,此时,通过JavaScript实现回到顶部特效便能提高用户的使用体验。 下面是“JavaScript实现回到顶部特效”的完整攻略。 一、获取页面滚动高度 使用window.scrollY属性或window.pageYOffset属性可以获取文档当前的纵向滚动距离。…

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