zoukankan      html  css  js  c++  java
  • (四)Javascript面向对象:继承

           继承是面向对象中比不可少的特性,但javascript中并
        没有继承的概念机制,但我们可以自己来实现这种功能。

        
    var JsObject = {} || new Object();

        JsObject.extend 
    = function(subClass, superClass){

          
    //先判断子类subClass是否已经定义,如果未定义,则重新定义类。
          if(typeof subClass == "undefined")subClass = function(){}; 

         
    //如果父类superClass是类,则转化成对象
          if(typeof superClass == "function")superClass = new superClass();

             
    //遍历父类superClass对象中的属性和方法
               for(var p in superClass)
              {

               
    /*将父类superClass对象中的属性和方法复制到子类prototype对象中,
               因此子类拥有父类的所有特性,即为继承  
    */    
                   subClass.prototype[p] 
    = superClass[p];
              }

              
    return subClass;
        };

        
    function Student()
        {
            
    this.name = "张三";
            
    this.updateName = function(name){
                
    this.name = name;
            }
        }

        
    function Class1()
        {
            
    this.sex = "";
            
    this.updateSex = function(sex){
                
    this.sex = sex;
            }
        }

       
    //定义类Class1继承Student类

        Class1 
    = JsObject.extend(Class1, Student);

        
    var obj = new Class1();

        alert(obj.sex);

        alert(obj.name);

        obj.updateSex(
    "");

        obj.updateName(
    "玛丽");

        alert(obj.sex);

        alert(obj.name);

    结果显示:男,张三,女,玛丽

  • 相关阅读:
    [转帖]SQL中partition关键字的使用
    利用分布类防止EF更新模型丢失验证信息
    列表样式切换
    HTML5页面增强元素
    CSS3 简易照片墙
    HTML5表单增强
    HTML5 元素拖放
    【CTF】WDCTF-2017 3-1 writeup
    【CTF】WDCTF-finals-2017 3-11 writeup
    【CTF】CTFHub 技能树 文件头检查 writeup
  • 原文地址:https://www.cnblogs.com/wangwei123/p/1733087.html
Copyright © 2011-2022 走看看