javascript 类继承机制

编程技术  /  houtizong 发布于 3年前   48
Javascript类的继承是通过constructor和prototype来实现的

1. 定义一个形如java的person类,然后实例化和调用它的属性
  
   // Define a so called class    var person = function() {        this.name = "vulnerability";        this.age = 28;    }    // Instantiate the class    var p1 = new person();    alert(p1.name);   

   执行结果是:
   vulnerability

2. 定义一个person的子类man
  
   var man = function() {      this.show = function() {         alert("The man is showing himself");      }   }   // Let the man extend the person   man.prototype = p1;   // Instantiate the man class   var m1 = new man();      // Invoke the show method   m1.show();   

   prototype是设置在class上而不是实例化过的对象中
   执行结果是:
   The man is showing himself

3. 拿一个未设置的属性
  
   alert(m1.name);   

   js解析器会从首先从当前对象去找这个属性,如果没有则顺着其原型对象链(prototype chain)去找这个属性值,如果翻遍了还没有,返回undefined。
   执行结果是:
   vulnerability

4. 设置属性
  
   // Set the property of the instance of subclass   m1.name = 'susceptibility';    // Verify whether the property has been set to the instance   alert(m1.name);   // Verify whether the property of the instance of prototype   // has been modified   alert(p1.name);   

   js在当前对象增加(更新)该属性,所以是在m1上设置。而原型对象的属性没有被改变
   执行结果是:
   susceptibility
   vulnerability

5. 设置原型对象的属性
  
   // Set the property of the prototype of man    man.prototype.name = 'changed value';   // The property of the instance of subclass wouldn't be changed   alert(m1.name);   // The property of the prototype has been changed   alert(p1.name);   

   原型对象的属性被改变,但是子类对象没有。
   执行结果是:
   susceptibility
   changed value
  

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客