iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > 其他 >es6中什么是类的静态成员
  • 497
分享到

es6中什么是类的静态成员

javascriptES6 2022-11-22 23:11:57 497人浏览 薄情痞子
摘要

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。面向对象面向对象的主要思想就是把需要解决的问题分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述每个对象在解决问题中的行为,面向对象的核心是对象

教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

面向对象

面向对象的主要思想就是把需要解决的问题分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述每个对象在解决问题中的行为面向对象的核心是对象

面向对象的优势:

  • 模块化更深,封装性强
  • 更容易实现复杂的业务逻辑
  • 更易维护、易复用、易扩展

面向对象的特征:

  • 封装性: 对象是属性和行为的结合体
  • 多态性: 同一消息被不同的对象接收后 会产生不同的效果
  • 继承性: 子类可以继承父类的信息

ES6面向对象语法

es6:ES是ECMAScript的简写,它是javascript的语法规范。ES6是在ES5基础上扩展,增加了面向对象编程的相关技术以及类的概念。

类和对象

:具有相同属性和行为的集合称为类(类是对象的抽象),类中的大多数数据只能用本类的方法进行处理。
对象:是类的实例(是类的具体化)

class关键字:用来定义类的

class 类名{// "类名"是一个用户标识符 通常建议首字母大写
           属性;
           函数;
}

构造函数

在ES6中使用constructor()来定义构造函数,作用是初始化对象的属性(成员变量),构造函数不是必须的,若用户没有定义构造函数,系统会生成一个默认的、无参的构造函数。

普通的成员函数

函数名([参数]){
     函数体语句
}
变量名 = function([参数]){
      函数体语句
}
            class Person{
                constructor(name,age,sex){// 构造函数 初始化对象的成员
                    this.name = name;// this指向构造函数新创建的对象
                    this.age = age;
                    this.sex = sex;
                }
                    tt = function(){ //普通的成员函数
	                    console.log(this.name);
	                    console.log(this.age);
	                    console.log(this.sex);
                	}	
            }
            var p = new Person('李相赫',25,'男')// p1是一个对象 通过调用构造函数对p1的三个属性进行了初始化
            p.fun();
        class Circle{// 定义类Circlie
            constructor(r){
                this.radius = r;
            };
            area(){ // 计算圆的面积
                var s = Math.PI*this.radius**2;
                return s;
            };
            // 计算圆的周长
            CircleLength = function(){
            return 2*Math.PI*this.radius;
            };
        };
        var c1 = new Circle(5);
        console.log('半径为5的圆的面积='+c1.area());
        console.log('半径为5的圆的周长='+c1.Circle_length());

结果如下:

在这里插入图片描述

		// 用类实现简单的四则运算
        class Number{// 定义类Number
            constructor(n1,n2){
                this.n1=n1;
                this.n2=n2;
            };
            add(){
                var sum = this.n1+this.n2;
                return sum;
            };
            sub(){
                var sum1 = this.n1-this.n2;
                return sum1;
            };
            mut(){
                var sum2 = this.n1*this.n2;
                return sum2;
            };
            p(){
                if(this.n2!=0){
                    var sum3 = this.n1/this.n2;
                    return sum3;
                }
            }
        }
        var p1 = new Number(12,21);
        console.log(p1.add());
        console.log(p1.sub());
        console.log(p1.mut());
        console.log(p1.p());

ES6中类的继承

在JavaScript中,继承用来表示两个类之间的关系,子类可以继承父类的一些属性和方法,在继承以后还可以增加自己独有的属性和方法。

语法:

class 子类名 extends 父类名{
       函数体语句;
};

关于继承需要注意:

  • 父类必须已经定义
  • 子类又称为派生类 可以继承父类的属性和函数
  • 子类不能继承父类的构造函数

super关键字

子类不可以继承父类的构造函数,如果要调用父类的构造函数可以使用super关键字。

**注意:**在子类的构造函数中使用super调用父类的构造函数,则调用语句必须作为子类构造函数的第一条语句

调用父类构造函数

super([参数])

调用普通成员函数

super.函数名([参数])

方法覆盖

若子类中定义的函数与父类中的函数同名,子类函数覆盖父类中的函数,可以在子类中调用父类的同名的普通成员函数来解决

        class Father{ //父类(基类或超类)
            constructor(type,color){
                this.type = type;
                this.color = color;
            }
            money(){
                console.log(100);
            }
            show(){
                console.log('类型:'+this.type);
                console.log('颜色:'+this.color);
            }
        }
        class Son extends Father{ //Son是子类(又称派生类)
            constructor(type,color,weight){
                super(type,color); //调用父类的构造函数 要放在首位
                this.weight = weight;
            };
            show(){
                super.show();// 调用父类的普通成员函数
                console.log('重量:'+this.weight);
            };
            other(){
                return '子类的其他方法';
            };
        };
        var s1 = new Son('iPhone 12','黑色','3000g');//s1为子类的实例
        s1.show();
        console.log(s1.other());

在这里插入图片描述

静态成员和实例成员

静态成员:通过类名构造函数访问的成员

实例成员:通过实例对象访问的成员称为实例成员

区别:

  • 实例成员属于具体的对象,而静态成员为所有对象共享
  • 静态成员是通过类名构造函数访问,实例成员是通过实例化的对象访问

在ES5中定义静态属性

        function Student(name,age,sex){
            Student.school = '西安邮电大学';// school是静态成员
            this.name = name;
            this.age = age;
            this.sex = sex;// name age sex都是实例成员
            this.show = function(){
                console.log('姓名:'+this.name);
                console.log('年龄:'+this.age);
                console.log('性别:'+this.sex);
            };
        };
        var f = new Student('李相赫',23,'男');
        f.show();
        console.log(Student.school);// 西安邮电大学
        console.log(f.school);// undefined

在ES6中静态属性定义

1、先创建类

2、在类的外部定义静态属性:类名.静态属性名

        class Foo{
            constructor(){
                this.color = '红色';// color是实例成员
            }
        }
        Foo.prop = 45;// prop是静态成员
        var f1 = new Foo();
        console.log('静态属性:'+Foo.prop);// 45
        console.log(f1.prop);// undefined

在ES7中静态属性定义

在类定义时 使用static关键字定义静态属性

        class Foo{
            static prop = 45; //prop是静态成员
            constructor(){
                this.color = '红色';
            }
        }
        var f2 = new Foo();
        console.log('静态属性:'+Foo.prop);// 45
        console.log(f2.prop);// undefined

类和构造函数的区别

类中的成员方法是定义在类中的,使用类创建对象后,这些对象的方法都是引用了同一个方法,这样可以节省内存空间。

	class Person {
		sing(){
			console.log('hello');
		}
	}
	var p1 = new Person();
	var p2 = new Person();
	console.log(p1.sing === p2.sing);	// 输出结果:true

以上就是es6中什么是类的静态成员的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: es6中什么是类的静态成员

本文链接: https://www.lsjlt.com/news/173441.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • es6中什么是类的静态成员
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。面向对象面向对象的主要思想就是把需要解决的问题分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述每个对象在解决问题中的行为,面向对象的核心是对象...
    99+
    2022-11-22
    javascript ES6
  • es6类的静态成员是什么
    本篇内容主要讲解“es6类的静态成员是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6类的静态成员是什么”吧!在es6中,由类直接调用的属性和方法叫静态成员。在类里面对变量、函数加sta...
    99+
    2023-07-04
  • C#中静态类和静态类成员的区别是什么
    C#中静态类和静态类成员的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#静态类和静态类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立...
    99+
    2023-06-17
  • C++的static静态成员是什么
    今天小编给大家分享一下C++的static静态成员是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、静态成员即在定义前...
    99+
    2023-06-29
  • C++类的静态成员变量与静态成员函数详解
    目录1、类的静态成员变量2、静态成员函数总结1、类的静态成员变量 C++类的静态成员变量主要有以下特性: 1.静态成员变量需要类内定义,类外初始化 2.静态成员变量不依赖于类,静态成...
    99+
    2024-04-02
  • 怎么理解C++类的静态成员变量与静态成员函数
    本篇内容介绍了“怎么理解C++类的静态成员变量与静态成员函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、类的静态成员变量C++类的静态...
    99+
    2023-06-25
  • C++分析讲解类的静态成员变量是什么
    目录一、成员变量的回顾二、新的需求三、静态成员变量四、小结一、成员变量的回顾 通过对象名能够访问 public 成员变量每个对象的成员变量都是专属的成员变量不能在对象之间共享 二、新...
    99+
    2024-04-02
  • VB.NET中静态成员有什么用
    本篇文章为大家展示了VB.NET中静态成员有什么用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET静态成员在面向对象编程语言中,有一种被称作静态成员的特殊的类成员,VB.NET也有静态成员...
    99+
    2023-06-17
  • C++中怎么初始化类静态成员
    这篇文章将为大家详细讲解有关C++中怎么初始化类静态成员,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++类静态成员初始化相关实现代码介绍:class mytestclass&n...
    99+
    2023-06-17
  • C++类的静态成员有哪些
    本篇内容介绍了“C++类的静态成员有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在静态成员函数的实现中不能直接引用类中说明的非静态成员...
    99+
    2023-06-17
  • c++静态成员变量的作用是什么
    c++中的静态成员变量是属于类的成员变量,而不是属于类的特定对象。静态成员变量只有一个副本,而不是每个对象都有一个副本。静态成员变量...
    99+
    2024-03-11
    c++
  • 如何理解C++类的静态成员
    这期内容当中小编将会给大家带来有关如何理解C++类的静态成员,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。静态数据成员的值对每个对象都是一样,这些对于一些专业的程序员来说进行静态成员函数实现是一件非常头疼...
    99+
    2023-06-17
  • 怎么理解C++的静态成员变量和静态成员函数
    怎么理解C++的静态成员变量和静态成员函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.static修饰变量void text() {static&nb...
    99+
    2023-06-22
  • C++的静态成员变量和静态成员函数详解
    目录一.static修饰变量二.static修饰函数三.static在类中使用1.创建与初始化 2.使用问题 3.在public、private下static变量使用 四.class...
    99+
    2024-04-02
  • c++中的静态成员怎么声明
    本篇内容主要讲解“c++中的静态成员怎么声明”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c++中的静态成员怎么声明”吧!引言有时候需要类的一些成员与类本身相关联,而不是与类的每个对象相关联。比...
    99+
    2023-06-19
  • java静态成员变量赋值的方法是什么
    Java静态成员变量赋值的方法是通过在静态代码块中为该变量进行赋值。静态代码块是在类加载时执行的一段代码块,可以用来初始化静态成员变...
    99+
    2023-09-15
    java
  • 静态成员,友元函数,友元类
    🐶博主主页:@ᰔᩚ. 一怀明月ꦿ  ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++ 🔥座右铭:“不要等到什么都没有了,才下定决心去做” ...
    99+
    2023-09-05
    jvm c++ java
  • C++的静态成员变量和静态成员函数你了解多少
    目录静态成员变量静态变量在任何类对象创建前初始化定义静态成员变量使用静态成员变量类对象共享静态成员const constexpr静态成员函数总结静态成员变量 这里先引用Geeksfo...
    99+
    2024-04-02
  • C++类的静态成员变量实例分析
    本文小编为大家详细介绍“C++类的静态成员变量实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++类的静态成员变量实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、成员变量的回顾通过对象名能够访...
    99+
    2023-06-30
  • 老生常谈c++中的静态成员
    引言 有时候需要类的一些成员与类本身相关联,而不是与类的每个对象相关联。比如类的所有对象都要共享的变量,这个时候我们就要用到类的静态成员。 声明类的静态成员 声明静态成员的方法是使用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作