JavaScript-面向对象编程

面向对象的两个概念:

  • 类:模板

  • 对象:实例

proto 指向

在java中若一个对象想要使用另一个对象内部的方法,可以使用extend继承

在JS中,对象有一个__proto__方法,可以指向自己的原型对象,从而使用其原型对象的某些方法,达到继承的效果

 var person={
     name:'mosang',
     age:20,
     sex:'男',
     run:function (){
         console.log('run...');
     }
 }
 var mosang={
     name:'mosang'
 }
 mosang.__proto__=person;

mosang这个对象中,重写了一个name属性,并指向了自己的原型对象person

 

proto可以用来多次指向

 var person={
     name:'person',
     age:20,
     sex:'男',
     run:function (){
         console.log(this.name+' run...');
     }
 }
 var bird={
     run:function (){
         console.log(this.name+' fly...');
     }
 }
 var mosang={
     name:'mosang'
 }
 mosang.__proto__=person;
 console.log(mosang.run());
 mosang.__proto__=bird;
 console.log(mosang.run());

  

class 继承

class关键字是ES6新引入的

 class Student{
     //构造体提取参数后自动生成属性
     constructor(name) {
         this.name=name;//属性赋值
     }
     hello(){
         //在类中调用构造器定义的属性需要加this
         alert(`${this.name} hello`);
     }
 }
 var a=new Student('a');
 a.hello();
 var b=new Student('b');
 b.hello();

若一个学生想要继承学生类则使用extends继承即可

 class Student {
     //构造体提取参数后自动生成属性
     constructor(name) {
         this.name=name;//属性赋值
     }
     hello(){
         console.log(`${this.name} hello`);
     }
 }
 class student1 extends Student{
     constructor(name,id) {
         super(name)
         this.id=id;
     }
 }
 var xiaoming=new student1('xiaoming','00001');

 

原型链

  

所有的类的原型类都是Object,而Object的原型指向了Object的一个构造函数,构造函数又生成了一个Object对象,是一种循环,构成了一个链式结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值