class-实例方法和静态方法|学习笔记

简介: 快速学习 class-实例方法和静态方法

开发者学堂课程【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 与静态属性平级。

//还有一个静态属性

infostatic info="eee""//(今后用的不多)
}

//这是动物的实例方法(今后会经常用到实例方法)

jiao(){

console.log('动物的实例方法')

}

//jiao 方法是一个挂载到实例对象上的方法。

//这是动物类的静态方法(今后用的不多)
static show() {

console.log('这是 Animal 的静态 show 方法')

}

//构造器和实例方法后面是用得比较多的

//加一个 static 就是静态方法了

const  a1 = new Animal('大黄'3)//打印一下 a1console.log (a1)

//打印 a1不应该有 jiao,是应该在他的原型对象上才有 a1.jiao() //这是实例方法

//Animal 上并没有 jiao 打开原型对象后才有。

Animal . show()

//开 Animal 原型对象_proto_是没有 show 的。

打开原型的原型也是没有 show 的。

show 方法被挂载到了原型构造器 constructor 上。

//通过 class 或构造函数直接.出来的是静态方法如果是 static 静态方法,实例是访问不到的。

如果没有 static 修饰,如 name,jiao 方法都是属于实例的。

相关文章
|
6天前
|
开发者
静态方法和实例方法的区别是什么?
静态方法和实例方法在面向对象编程中各自扮演着重要的角色,开发者需要根据具体的业务需求和设计原则来合理地使用它们,以实现高效、可读和易于维护的代码结构。
45 12
|
2天前
静态方法和实例方法有何不同?
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制
|
6天前
在类中使用静态方法和实例方法有什么区别?
在类中合理地使用静态方法和实例方法,可以更好地组织和管理代码,提高代码的可读性、可维护性和性能,根据具体的业务需求和逻辑来选择使用哪种方法是编写高质量面向对象代码的关键。
|
6月前
|
Java
【Java基础】类名、抽象类、接口名的参数传递及成员内部类、局部内部类和匿名内部类的使用
【Java基础】类名、抽象类、接口名的参数传递及成员内部类、局部内部类和匿名内部类的使用
76 0
|
Java
Java 类(私有属性、对象方法、类方法,构造函数)
Java 类(私有属性、对象方法、类方法,构造函数)
120 0
构造函数被private修饰后只能通过静态方法获得实例
构造函数被private修饰后只能通过静态方法获得实例
83 0
|
C++
C++类的静态方法
C++类的静态方法
82 0
|
Java C++
C++类中在构造器中调用本类的另外构造器
C++类中在构造器中调用本类的另外构造器
98 0
typescript37-class的构造函数实例方法继承(extends
typescript37-class的构造函数实例方法继承(extends
80 0
typescript37-class的构造函数实例方法继承(extends
|
前端开发 开发者
class-子类访问父类上的实例方法|学习笔记
快速学习 class-子类访问父类上的实例方法
114 0