开发者学堂课程【React 入门与实战:学习 class-实例方法和静态方法】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/585/detail/8095
class-实例方法和静态方法
一、新建实例
新建一个实例命名为07.class-实例方法和静态方法,删除复制06内的多余代码。
//当前在person内有两个实例属性分别是 name 和 age。
function Person (name, age){
this name = name
this.age = age
}//想为 person 加一个 say 方法应该怎么加?
应该加在原型对象上。如果放在 name 上那么每个实例身上都会有一个 say 方法,这样就不太好,比较浪费内存。应挂载到 person 上。// info 属性,直接挂载给了构造函数,所以它是静态属性 Person. info = 'aaaa' //静态属性
//实例方法
//既然有实例方法也有静态方法,静态方法应该挂载到 person
Person. prototype.say = function(){
//say 方法已经挂载到原型对象上
//peraon 实例上不应该有 say 方法是应该在双向量_proto_身上有一个,展开_proto_可以验证 say 确实挂载到了原型对象上。
fconsole.1og('这是 Person ,的实例方法')
} //为 person 建一个 say 方法,用原型对象法创建。
//为什么叫实例方法,因为 say 方法可以批量访问
//静态方法
//静态方法也是挂载到构造函数的。Person. show = function(){
console.log('
这是Person的静态show 方法)
}const p1 = new Person('
王多多' ,18)
console.log (p1)
p1.say() //这是实例方法
//这是在构造原型对象上挂载了实例方法
p1.show()//P1肯定访问不到 show,这是静态方法访问不到的
//静态方法都挂载到构造函数了,并不在原型对象上
//在 Animal 内也有两个实例属性 name 和 age
class Animal {
constructor (name, age) {
//onstructor 构造器指向构造函数。构造器也是一个对象,挂载了静态属性 info
//constructor 与静态属性平级。
//还有一个静态属性
info。static info="eee""//(今后用的不多)
}
//这是动物的实例方法(今后会经常用到实例方法)
jiao(){
console.log('
动物的实例方法')
}
//jiao 方法是一个挂载到实例对象上的方法。
//这是动物类的静态方法(今后用的不多)static show() {
console.log('这是 Animal 的静态 show 方法')
}
//构造器和实例方法后面是用得比较多的
//加一个 static 就是静态方法了
const a1 = new Animal('
大黄',3)//打印一下 a1。console.log (a1)
//打印 a1不应该有 jiao,是应该在他的原型对象上才有 a1.jiao() //这是实例方法
//Animal 上并没有 jiao 打开原型对象后才有。
Animal . show()
//开 Animal 原型对象_proto_是没有 show 的。
打开原型的原型也是没有 show 的。
show 方法被挂载到了原型构造器 constructor 上。
//通过 class 或构造函数直接.出来的是静态方法如果是 static 静态方法,实例是访问不到的。
如果没有 static 修饰,如 name,jiao 方法都是属于实例的。