zoukankan      html  css  js  c++  java
  • JavaScript的OOP编程1

    首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种

    version1

    // 父类
    function Person(name){this.name = name}
    Person.prototype.say =  saymyname;
    function saymyname(){alert(this.name)}
    
    // 子类
    function Employee(name){Person.call(this, name)}         // 调用父类构造函数
    Employee.prototype = new Person();                       // 继承父类
    Employee.prototype.cardID = function(){alert("1000")}    // 定义子类自己的方法
    
    // 实例化
    p = new Employee("lishujun");
    p.say();
    p.cardID();

     version2

    // 父类
    function Person(name){this.name = name}
    Person.prototype.say =  saymyname;
    function saymyname(){alert(this.name)}
    
    // 子类
    function Employee(name){Person.call(this, name)}                     // 调用父类构造函数
    Employee.prototype = new Person();                                   // 继承父类
    Employee.prototype.cardID = function(){this.say(); alert("1000")}    // 定义子类自己的方法,调用父类方法
    
    // 实例化
    p = new Employee("lishujun");
    p.say();
    p.cardID();

     version3

    // 父类
    function Person(name){this.name = name}
    Person.prototype.say =  saymyname;
    function saymyname(){alert(this.name)}
    
    // 子类
    function Employee(name){Person.call(this, name)}           // 调用父类构造函数
    Employee.prototype = new Person();                         // 继承父类
    Employee.prototype.cardID = function(){alert("1000")}      // 定义子类自己的方法
    Employee.prototype.say = function(){alert("Employee say")} // 覆盖父类方法,即:多态
    
    // 实例化
    p = new Employee("lishujun");
    p.say();
    p.cardID();
  • 相关阅读:
    layui的模块化和非模块化使用
    layui实现类似于bootstrap的模态框功能
    ajax下载文件
    【IDEA】IDEA中maven项目pom.xml依赖不生效解决
    主-主数据库系统架构
    MyEclipse x.x各版本终极优化配置指南
    Cactus入门
    有史以来最出彩的编程语言名字
    安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
    第一次讲课总结
  • 原文地址:https://www.cnblogs.com/code-style/p/4235547.html
Copyright © 2011-2022 走看看