JavaScript面向对象

本文介绍了JavaScript中的面向对象编程,包括类的定义、构造函数、方法的创建以及静态变量的使用。通过实例展示了如何创建Person类及其子类ManPerson,并演示了属性和方法的调用。此外,还讨论了子类继承父类的特性,以及私有属性的访问方式。
摘要由CSDN通过智能技术生成

面向对象

定义类 

基础语法 通过class关键字

class Person{
				
				//我们可以定义一些公共的属性
				title = '人的信息';
				
				//定义一个静态的变量
				static height = 180;
				
				//定义属性 初始化属性 constructor用来定义属性
				constructor(name,age) {
				   this.name = name;//this指向的是当前的实列对象
				  this.age = age; 
				}
				
				//定义方法/函数
				say(){
					// console.log(this.name+'能说话');
					//注意函数是有返回值的
					return this.name+'能说话';//this指向的是当前的实列对象
				}
			}

对象都是 new关键词 new出来的

类的方法使用

p2.say();有返回值不能直接获得数据

var p2say = p2.say();
console.log(p2say);

类的属性使用 属性是打点调用

console.log(p2.name);
console.log(p2.title);

静态变量的使用

console.log(p2.height);//undefined
console.log(Person.height);//180

总结 static静态成员 不能被实例继承 所以实例打点是获取不到的 需要原型打点获取

总结 定义的这个Person对象 我们称它为 原型对象

p2我们称它为 实例对象 指的就是具体的实在对象

定义子类使用extends关键字 mathperson是子类 person是父类

class ManPerson extends Person{
				//私有属性
				#p = 123;
				//定义属性
				constructor(name,age,sex) {
				 //    this.name = name;
					// this.age = age;
					// 因为name和age属性父类已经有了 这里就不需要像上面两行那样再重新写一边
					// 直接把name和age属性写在super里面就行
					super(name,age);
					this.sex= sex;
				}
				//定义自己的方法
				say(){
					var str = '姓名: '+this.name+'年龄: '+this.age+' 能说话';
					console.log(str);
				}
				//私有属性如何获得  可以再类里面自身调用 定义一个方法获得私有属性
				getp(){
					// console.log(this.#p);
					return this.#p;
				}
				//子类也可以写属于在自己的方法
				playGame(type){
					return  this.name+'喜欢玩'+type;
				}
			}

子类会继承父类的属性

var M1 = new ManPerson('王五',30,'男');
			console.log(M1.age);
			console.log(M1.name);
			console.log(M1.sex);

调用方法  子类重写了方法  就调用自己的 子 类不写的时候  调用继承的父类方法

如果父类也没有 结果就是undefined

var M1say = M1.say();
			// console.log(M1say);
			M1.say();

私有属性 不可以直接调用

console.log(M1.p);//undefined
			console.log(M1.getp());//123

子类的方法调用并传参数

 console.log(M1.playGame('原神')); 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值