首先,关于类有两个概念:

1、类自身;

2、类的实例对象

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

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

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

  class User{static call(){console.log('你好呀');}}User.call()//你好呀let ff = new User()ff.call()//TypeError: ff.call is not a function

这里类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); // trueconsole.log("构造函数方法的你好呀");}static call() {// 这里面的this指向类本身console.log(this === User); // trueconsole.log("静态方法的你好呀");}}// 静态方法User.call(); //静态方法的你好呀// 构造函数方法let hh = new User();hh.call(); //构造函数方法的你好呀

有兴趣的小伙伴可以加我微信Leyman233,可以建个群一起交流前端,我也还是个菜鸟,希望能一起进步!!!

JS中Class类的静态属性和静态方法相关推荐

  1. python类的静态属性和静态方法_详解Python中的静态方法与类成员方法

    前言 因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目.对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认 ...

  2. php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...

  3. php静态方法怎么调用非静态属性,关于静态方法不能调用类中的非静态属性的理解...

    class test{ public $a; public function game(){ echo "123"; } public static function name() ...

  4. NodeJS 发送 POST 请求 curl -d JS 类的静态属性使用

    NodeJS 发送 POST 请求 curl -d & JS 类的静态属性使用 'use strict';const Service = require('../lib/ServiceBase ...

  5. PHP中的静态属性、静态方法、常量属性

    2019独角兽企业重金招聘Python工程师标准>>> 1.静态属性.静态方法 在面向对象编程中,我们不仅可以通过对象访问方法和属性,还可以通过类来访问它们.这样的方法和属性就是&q ...

  6. js中的类、继承、闭包

    一.js中的类 类:在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法. Javascript是一种基于对象(obje ...

  7. new 实例化对象是啥意思_二. 初步认识JS中的类和对象

    1 构造函数的定义 在JS中, 没有类(class)的概念, 主要是通过构造函数来模拟的. 语法 function 构造函数名 () {// 函数体} 使用function关键字表示定义一个构造函数 ...

  8. sv中静态属性和静态方法

    静态属性 类的内存空间是动态分配和释放的,同一个类的不同实例,即使其中变量的名称相同,也是不同的东西. 如果需要一个变量,这个变量能够被一个类的所有实例共享,那么就需要声明这个变量为static. 可 ...

  9. 一个ABAP调试器里查看类的静态属性的小技巧

    我们知道,像如图一这种类的静态属性,因为不属于类的实例所有,因此调试到这个类的方法内部时,只能通过图二演示的两种方式在调试器显示该属性的值.而一旦调试到该类方法的外部,通常就只能通过"类名= ...

最新文章

  1. 【观点】智能制造:新时代智能产业革命的基石|王飞跃
  2. jQuery 插件---hotkeys快捷键(热键).
  3. Silverlight 3.0 不再包含 asp:silverlight 控件
  4. linux命令lsof
  5. JEESZ-SSO解决方案
  6. 计算机无法检测电池损耗怎么办,笔记本电脑无法充电怎么办?笔记本电池损耗如何修复?...
  7. currenttimemillis 毫秒还是秒_亿级数据毫秒级查询!ElasticSearch是怎么做到的?
  8. vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元
  9. 关于Axure RP
  10. 鸿蒙OS应用开发_基础篇_编写第一个HarmonyOs应用_体会HarmonyOs的一次开发多端部署_以及分布式任务调度_IDE安装_了解应用组件以及应用布局---HarmonyOs开发工作笔记001
  11. Sharding-JDBC简介_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记006
  12. Jupyter Lab——如何在 Jupyter Lab调用相对路径的文件夹中的类
  13. 深度图像RGB-D(RGB+Depth Map)名词扫盲笔记
  14. 微信API接口访问慢
  15. Android手机会中电脑病毒么,安卓手机中木马病毒怎么办
  16. 《算法和数据结构》学习路线指引
  17. laydate使用官方使用方法
  18. 【北亚数据恢复】zfs文件系统的服务器误删除的数据恢复
  19. layui列表筛选列_基于layui实现高级搜索(筛选)功能
  20. 2小时完成的第一个副业单子:Python修正excel表格数据

热门文章

  1. codeforces 708A - Letters Cyclic Shift
  2. python绘制极坐标轮廓图contourf
  3. Windows 系统快速打开计算器
  4. 传智播客的java培训结束了,我的爱也结束了
  5. 小儿计算机编程是什么意思,小儿趣味编程是什么,幼儿学习编程的好处以及要点...
  6. 看这里,与你走近“社交焦虑障碍”的大脑活动
  7. ​刘强东卸任京东集团 CEO,徐雷接任;苹果新专利可为多个设备无线充电;Rust公布2024年路线图|极客头条
  8. 火影忍者巅峰对决服务器维护,火影忍者手游巅峰对决怎么玩 巅峰对决规则/开启时间/详细的玩法攻略[视频][多图]...
  9. Typescript笔记之基础知识(1):强类型语言和弱类型语言、静态语言和动态语言
  10. 意义学 | 吾日四省吾身:合乎礼(情感/关系)义(智力/智慧)廉(身体/生活)耻(精神/边界)...