zoukankan      html  css  js  c++  java
  • JS面向对象组件(四) -- 面向对象的继承

    什么是继承
      •在原有对象的基础上,略作修改,得到一个新的对象
      •不影响原有对象的功能
    //父类   createPerson
     function  createPerson(name,sex){
         this.name = name;
         this.sex = sex;
     }
     createPerson.prototype.showName = function(){
         alert(this.name);
     }
     var a = new createPerson("小明","");
    
     //子类   createStar
    function createStar(name,sex,job){
        //createPerson(name,sex);   //最初的想法肯定是直接调用父类的构造函数,但是结果不行。因为调用这个构造函数前面没任何东西,this代表window、
        createPerson.call(this,name,sex);   //所以要通过call改变this的指向。  指向为这儿b。
        this.job = job;
    }
     createStar.prototype = createPerson.prototype;    //这个就存在对象引用的问题,但凡改变两个对象中的任意一个,另一个也会变。
     createStar.prototype.showJob = function(){
         alert(this.job);
     }
     var b = new createStar("黄晓明","","演员");
     b.showName();
    
     console.log(a);    //会多出一个showJob
     console.log(b);

    所以上面特意添加了个子类的方法showJob,来测试 createStar.prototype = createPerson.prototype 这个的问题。

    具体解决方案见下篇、
  • 相关阅读:
    Python基础:28正则表达式
    Remove Duplicates from Sorted Array
    Reverse Nodes in k-Group
    Merge k Sorted Lists
    Generate Parentheses
    Container With Most Water
    Regular Expression Matching
    Median of Two Sorted Arrays
    sql 子查询
    linux安装服务器
  • 原文地址:https://www.cnblogs.com/wanliyuan/p/5245133.html
Copyright © 2011-2022 走看看