广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS中关于Class类的静态属性和静态方法
  • 664
分享到

JS中关于Class类的静态属性和静态方法

JS中Class类Class类静态属性Class类静态方法 2022-11-13 18:11:50 664人浏览 薄情痞子
摘要

目录一、类的两个概念二、对象的两个部分1、属性 2、方法三、静态方法使用:在方法前加上static关键字1、为什么使用静态方法三、总结1、静态属性和非静态属性的区别2.使用

一、类的两个概念

1、类自身;

2、类的实例对象;

总的来说:静态的是指向类自身,而不是指向实例对象,主要是归属不同,这是静态属性,静态方法的核心。

二、对象的两个部分

1、属性 

分为:实例属性、静态属性(类属性)、只读属性

2、方法

分为:实例方法、静态方法(类方法)

class Person {
  //1、定义方法
  
  name= "tom";
  age = 10;
  
  static height = 180;
  
  readonly money= 1000;
 
  //2、定义方法
 
  say(){
      console.log('hello world');    
  }
  static work(){
      console.log('我能挣钱');    
  }
}
const per = new Person();
//per.money=2000  报错,不可修改
console.log(per, Person.height);
per.say()  //调用实例方法
Person.work() //调用类方法

三、静态方法使用:在方法前加上static关键字

1、为什么使用静态方法

阻止方法被实例继承,类的内部相当于实例的原型,所有在类中直接定义的方法相当于在原型上定义方法,都会被类的实例继承,但是使用static静态方法定义的不会被实例继承。

  class User{
            static call(){
               console.log('你好呀');
            }
        }
      User.call()//你好呀
 
      let ff = new User()
      ff.call()//报错,实例不能访问类的静态方法

这里类User可以直接使用call方法,但它的是实例ff却不可以!

但是我们可以通过继承的方式,让另一个类来继承User里面的方法

class User{
            static call(){
               console.log('你好呀');
            }
        }
  
  
     class foo extends User{}
     foo.call()//'你好呀'    

这里foo类通过继承User类,才可以使用User里面的静态方法。

我们知道class类这个概念是es6后出来的新特性,用以前的es5方法写就是:

 class User{
            static call(){
               console.log('静态方法的你好呀');
            }
            call(){
               console.log('构造函数方法的你好呀');
            }
        }
 
//等同于
function User(){}
     User.call=function(){
         console.log('静态方法的你好呀');
     }
   
    User.prototype.call=function(){
         console.log('构造函数方法的你好呀');
     }

但是User类里面的构造函数方法是可以被实例调用的,如图:

function User(){}
User.prototype.call=function(){
         console.log('你好呀');
     }
     let h1 =new User()
     h1.call()//你好呀

完整版如下

class User {
            call() {
                // 这里面的this指向构造函数的对象
                console.log(this === hh); // true
                console.log("构造函数方法的你好呀");
            }
            static call() {
                // 这里面的this指向类本身
                console.log(this === User); // true
                console.log("静态方法的你好呀");
            }
        }
        // 静态方法
        User.call(); //静态方法的你好呀
 
        // 构造函数方法
        let hh = new User();
        hh.call(); //构造函数方法的你好呀

三、总结

1、静态属性和非静态属性的区别

  • 在内存中存放的位置不同:所有static修饰的属性和方法都存放在内存的方法区里,而非静态的都存在堆内存中
  • 出现的时机不同:静态属性和方法在没创建对象之前就存在,而非静态的需要在创建对象才存在
  • 静态属性是整个类都公用的
  • 生命周期不一样,静态在类消失后被销毁,非静态在对象销毁后销毁
  • 用法:静态的可以直接通过类名访问,非静态只能通过对象进行访问

2.使用static的注意事项

  • 带静态修饰符的方法只能访问静态属性
  • 非静态方法既能访问静态属性也能访问非静态属性
  • 非静态方法不能定义静态变量
  • 静态方法不能使用this关键字
  • 静态方法不能调用非静态方法,反之可以

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: JS中关于Class类的静态属性和静态方法

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

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

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

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

下载Word文档
猜你喜欢
  • JS中关于Class类的静态属性和静态方法
    目录一、类的两个概念二、对象的两个部分1、属性 2、方法三、静态方法使用:在方法前加上static关键字1、为什么使用静态方法三、总结1、静态属性和非静态属性的区别2.使用...
    99+
    2022-11-13
    JS中Class类 Class类静态属性 Class类静态方法
  • es6中class类静态方法,静态属性,实例属性,实例方法的示例分析
    这篇文章主要为大家展示了“es6中class类静态方法,静态属性,实例属性,实例方法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“es6中class类...
    99+
    2022-10-19
  • php中的静态属性和静态方法怎么用
    这篇文章主要介绍“php中的静态属性和静态方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中的静态属性和静态方法怎么用”文章能帮助大家解决问题。在php中,通过static关键字修饰的...
    99+
    2023-06-26
  • php中的静态属性和静态方法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不...
    99+
    2021-03-06
    php 静态属性 静态方法
  • es6中的class有静态属性吗
    这篇文章主要介绍“es6中的class有静态属性吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6中的class有静态属性吗”文章能帮助大家解决问题。es6中的class没有静态属性。静态属性是...
    99+
    2023-07-05
  • es6中的class有没有静态属性
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。class 的本质是 function。它可以看作一个语法糖,让对...
    99+
    2023-05-14
    ES6 class
  • PHP中什么是静态以及静态属性和静态方法是什么意思
    本篇内容主要讲解“PHP中什么是静态以及静态属性和静态方法是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中什么是静态以及静态属性和静态方法是什么意思”吧!静态是什么我们之前讲到,...
    99+
    2023-06-20
  • ES6中如何实现Class类的静态方法
    这篇文章给大家分享的是有关ES6中如何实现Class类的静态方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个...
    99+
    2022-10-19
  • Java中的static关键字和静态变量、静态方法
    本篇内容介绍了“Java中的static关键字和静态变量、静态方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • java中的静态属性与静态方法可以被继承么
    结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite),而是被隐藏。原因分析:静态方法和属性是属于类的,调用的时候可以直接通过类名.方法名完成,不需要继承机制便可以调用。如果子类里面定义了静态方法和属性,那么这时...
    99+
    2016-02-05
    java 静态属性 静态方法 继承
  • Java 中的静态字段和静态方法
    目录一、静态变量静态变量声明静态变量测试二、静态方法静态方法测试静态方法是如何工作的为什么 Java Main 方法是静态方法三、静态常量四、总结先看看下面这一串代码: public...
    99+
    2022-11-13
  • Python中静态方法,类方法,属性方法使用方法
    目录1.静态方法2.类方法3.静态方法与类方法总结4.属性方法1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普...
    99+
    2022-11-11
  • Python中静态方法,类方法,属性方法怎么使用
    本篇内容介绍了“Python中静态方法,类方法,属性方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.静态方法通过@static...
    99+
    2023-06-30
  • 关于@Autowired注解和静态方法及new的关系
    目录@Autowired注解和静态方法及new关系一、@autowired 与new 二、@autowired 与静态方法1.spring框架应用中有些静态方法需要依赖被容...
    99+
    2022-11-13
  • Java中的静态字段和静态方法怎么用
    这篇文章主要介绍了Java中的静态字段和静态方法怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先看看下面这一串代码:public class Mai...
    99+
    2023-06-29
  • Java 深入学习static关键字和静态属性及方法
    目录static关键字静态属性静态方法静态方法的使用静态代码块static关键字 在定义一个类时,只是描述某事物的特征和行为,并没有产生具体的数据,只有通过new关键字创建该类的实例...
    99+
    2022-11-13
  • 关于访问node express中的static静态文件方法
    目录访问node express中的static静态文件应用场合解决方法示例Express访问静态资源(express.static)前端调用静态资源Express访问静态资源访问n...
    99+
    2022-11-13
  • Python 类方法和静态方法之间的区别
    目录前言1. 实例方法 instance method2. 类方法 class method3. 静态方法 static method前言 类中不仅可以有 methods,还可以有变...
    99+
    2022-11-11
  • 浅谈python中的实例方法、类方法和静态方法
    在学习python代码时,看到有的类的方法中第一参数是cls,有的是self,经过了解得知,python并没有对类中方法的第一个参数名字做限制,可以是self,也可以是cls,不过根据人们的惯用用法,sel...
    99+
    2022-06-04
    方法 浅谈 静态
  • 详解Python中的静态方法与类成员方法
    前言 因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目。对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认识。打...
    99+
    2022-06-04
    方法 静态 详解
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作