class基本使用
console.log(`
1.创建一个空对象
2.让this 指向刚刚创建好的空对象
3.执行构造函数内的代码 (为相关的属性和方法赋值)
4.返回创建好的对象`)
// 1.创建一个空对象
// 2.让this 指向刚刚创建好的空对象
// 3.执行构造函数内的代码 (为相关的属性和方法赋值)
// 4.返回创建好的对象
// new 一个对象的过程 就是实例
function Person(name,age){
this.name = name
this.age = age
}
// info 属性,直接挂载给了构造函数,所以它是静态属性
Person.info = 'aaaa'
//实例方法
Person.prototype.say = function(){
console.log("这是Person的实例方法"); }
Person.show = function(){
console.log("这是Person的静态show方法"); }
const p1 = new Person("许三多",18)
console.log(p1)//实例属性
console.log(Person.info);//静态属性
//通过 new 出来的实例,访问到的属性,叫做[实例属性]
//通过构造函数,直接访问到的属性,叫做[静态属性]
console.log(p1.name);
p1.say();//实例方法
Person.show();//静态方法 console.log('=================class===================');
//
// 实例成员:使用实例对象(实例)来调用的属性和方法(只能使用new创建出来的对象)
// 静态成员:只能使用构造函数名进行 调用和 创建的 属性或者方法
// class ----------------------------------------------------
//创建一个动物类
// 注意1:在 class 的 { } 区间内,只能写 构造器、静态方法和静态属性、实例方法
// 注意2:class 关键字内部,还是用 原来的配方实现的;所以说,我们把 class 关键字,称作 语法糖;
class Animal {
//这是勒种的构造器
//每个类中都有一个构造器如果程序员没有手动指定构造器,那么,可以认为类内部有一个隐形的构造器
//类似如: constructor(){}
// 构造器的作用,就是,每当 new 这个类的时候,必然会优先执行 构造器中的代码
constructor(name,age){
//实例属性
this.name = name
this.age = age
}
// 在 class 内部,通过 static 修饰的属性,就是静态属性
static info = "eeeee"
static show(){
console.log("这是动物的静态方法");
}
wow(){
console.log("动物的实例方法");
}
}
const a1 = new Animal("黄",3)
console.log(a1);
console.log(a1.name);//实例属性
a1.wow();//实例方法
console.log('====================================');
console.log(Animal.info);//info 是Animal静态属性
Animal.show();
console.log('====================================');
class Animal {
constructor(name,age){
//实例属性 因为这些通过this挂载的属性,都是通过new出来的实例访问的
this.name = name
this.age = age
}
//实例方法
say(){
console.log('实例say方法')
}
//--------------------------------------------------
//如果要定义静态属性,则需要和constructor,并且这个属性需要被static关键字修饰
//静态属性的定义:无法通过实例访问,只能通过类名的访问
static info = {
address:"上海",
location:"宝山"
}
static show(){
console.log("静态的show方法")
}
}
const a1 = new Animal("小黄",2)
console.log(a1)
console.log(a1.name)//通过实例直接访问的实例属性
a1.say()//通过 实例,直接访问实例方法 实例的挂载在__proto__
console.log('====================================');
console.log(Animal.info)//通过类名,直接访问静态属性
Animal.show()//通过类名,直接访问静态方法
// 实例的 属性 或 方法,都是 通过 new 出来的实例对象来访问的;
// 静态的属性 或方法,都是 直接通过 类名 来访问的;(表现形式:通过 static 来修饰)
随机推荐
- Autopep8的使用
什么是Autopep8 在python开发中, 大家都知道,python编码规范是PEP8,但是在市级开发中有的公司严格要求PEP8规范开发, 有的公司不会在乎那些,在我的理解中,程序员如果想走的更高 ...
- 7.app和app后端的通讯
经常有开发者问:app和后端通讯是用http协议还是私有的协议?是用长连接还是短连接?通过阅读本文,帮你解除上面的疑问. (1)是用http协议还是私有的协议? 在间谍电视剧中,经常能看到间谍们的书信 ...
- 在Windows Server 2008 R2下搭建jsp环境(四)-在测试的过程中可能出现的问题
环境基本部署好了之后,便开始测试,一定要让他经得起"考验",他才会值得你的信赖.Tomcat服务器部署成功的的验证方法(默认端口的情况下): 1.loacalhost:8080 2 ...
- proxy.go 源码阅读
) for { select { case <-otherSide: complete <- true ...
- I/O----复制文本文件
文件 "我的青春谁做主.txt" 位于 D 盘根目录下,要求将此文件的内容复制到 C:/myPrime.txt 中. package io.day03; import java.i ...
- 【构造】Bzoj1432[ZJOI2009]Function
Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 ...
- iOS指纹识别Touch ID的安全性探讨
苹果公司在 iPhone 5s 的发布会上公布了全新的指纹识别安全技术,也就是 Touch ID,开创了生物安全识别技术在便携设备上使用的新篇章.此后,苹果还将此技术带到了 iPad 上.此前没有任何 ...
- 数字证书中读取PublicKey
1. 读取https签发证书中的key 1) 在下面的代码中,是实现读取证书字符串来读取key的,CERTIFICATE 就是一个证书的字符串, 而方法cf.generateCertificate() ...
- Tomcat启动失败的几种解决办法
1.重复映射 用Eclipse开发,新建了的servlet会有一个url-pattern声明: 这样就不需要在web.xml中添加映射,如果在web.xml中添加了这样一段: <servlet& ...
- Jmeter----创建第一个接口测试流程
第一步.创建线程 第二步.添加一个HTTP请求 第三步.设置request的请求头信息 根据自己需要填写的请求头信息进行填写,如下是我需要接口测试时填写的请求头 第四步.设置相关的HTTP请求参数,完 ...