JS中Class类的静态属性和静态方法
首先,关于类有两个概念:
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类的静态属性和静态方法相关推荐
- python类的静态属性和静态方法_详解Python中的静态方法与类成员方法
前言 因为Python的水平目前一直是处于能用阶段,平时写的脚本使用的Python的写法也比较的简单,没有写过稍微大一点的项目.对Python中的类,类之间的组织关系,整个项目中类之间如何耦合还缺乏认 ...
- php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法
PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...
- php静态方法怎么调用非静态属性,关于静态方法不能调用类中的非静态属性的理解...
class test{ public $a; public function game(){ echo "123"; } public static function name() ...
- NodeJS 发送 POST 请求 curl -d JS 类的静态属性使用
NodeJS 发送 POST 请求 curl -d & JS 类的静态属性使用 'use strict';const Service = require('../lib/ServiceBase ...
- PHP中的静态属性、静态方法、常量属性
2019独角兽企业重金招聘Python工程师标准>>> 1.静态属性.静态方法 在面向对象编程中,我们不仅可以通过对象访问方法和属性,还可以通过类来访问它们.这样的方法和属性就是&q ...
- js中的类、继承、闭包
一.js中的类 类:在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法. Javascript是一种基于对象(obje ...
- new 实例化对象是啥意思_二. 初步认识JS中的类和对象
1 构造函数的定义 在JS中, 没有类(class)的概念, 主要是通过构造函数来模拟的. 语法 function 构造函数名 () {// 函数体} 使用function关键字表示定义一个构造函数 ...
- sv中静态属性和静态方法
静态属性 类的内存空间是动态分配和释放的,同一个类的不同实例,即使其中变量的名称相同,也是不同的东西. 如果需要一个变量,这个变量能够被一个类的所有实例共享,那么就需要声明这个变量为static. 可 ...
- 一个ABAP调试器里查看类的静态属性的小技巧
我们知道,像如图一这种类的静态属性,因为不属于类的实例所有,因此调试到这个类的方法内部时,只能通过图二演示的两种方式在调试器显示该属性的值.而一旦调试到该类方法的外部,通常就只能通过"类名= ...
最新文章
- 【观点】智能制造:新时代智能产业革命的基石|王飞跃
- jQuery 插件---hotkeys快捷键(热键).
- Silverlight 3.0 不再包含 asp:silverlight 控件
- linux命令lsof
- JEESZ-SSO解决方案
- 计算机无法检测电池损耗怎么办,笔记本电脑无法充电怎么办?笔记本电池损耗如何修复?...
- currenttimemillis 毫秒还是秒_亿级数据毫秒级查询!ElasticSearch是怎么做到的?
- vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元
- 关于Axure RP
- 鸿蒙OS应用开发_基础篇_编写第一个HarmonyOs应用_体会HarmonyOs的一次开发多端部署_以及分布式任务调度_IDE安装_了解应用组件以及应用布局---HarmonyOs开发工作笔记001
- Sharding-JDBC简介_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记006
- Jupyter Lab——如何在 Jupyter Lab调用相对路径的文件夹中的类
- 深度图像RGB-D(RGB+Depth Map)名词扫盲笔记
- 微信API接口访问慢
- Android手机会中电脑病毒么,安卓手机中木马病毒怎么办
- 《算法和数据结构》学习路线指引
- laydate使用官方使用方法
- 【北亚数据恢复】zfs文件系统的服务器误删除的数据恢复
- layui列表筛选列_基于layui实现高级搜索(筛选)功能
- 2小时完成的第一个副业单子:Python修正excel表格数据
热门文章
- codeforces 708A - Letters Cyclic Shift
- python绘制极坐标轮廓图contourf
- Windows 系统快速打开计算器
- 传智播客的java培训结束了,我的爱也结束了
- 小儿计算机编程是什么意思,小儿趣味编程是什么,幼儿学习编程的好处以及要点...
- 看这里,与你走近“社交焦虑障碍”的大脑活动
- ​刘强东卸任京东集团 CEO,徐雷接任;苹果新专利可为多个设备无线充电;Rust公布2024年路线图|极客头条
- 火影忍者巅峰对决服务器维护,火影忍者手游巅峰对决怎么玩 巅峰对决规则/开启时间/详细的玩法攻略[视频][多图]...
- Typescript笔记之基础知识(1):强类型语言和弱类型语言、静态语言和动态语言
- 意义学 | 吾日四省吾身:合乎礼(情感/关系)义(智力/智慧)廉(身体/生活)耻(精神/边界)...