网络编程 
首页 > 网络编程 > 浏览文章

JavaScript实现多态和继承的封装操作示例

(编辑:jimmy 日期: 2024/11/7 浏览:3 次 )

本文实例讲述了JavaScript实现多态和继承的封装操作。分享给大家供大家参考,具体如下:

封装Encapsulation

如下代码,这就算是封装了

(function (windows, undefined) {
  var i = 0;//相对外部环境来说,这里的i就算是封装了
})(window, undefined);

继承Inheritance

(function (windows, undefined) {
  //父类
  function Person() { }
  Person.prototype.name = "name in Person";
  //子类
  function Student() { }
  Student.prototype = new Person();      //修复原型
  Student.prototype.constructor = Student;  //构造函数
  Student.prototype.supr = Person.prototype; //父类
  //创建子类实例
  var stu = new Student();
  Student.prototype.age = 28;
  Student.prototype.name = "name in Student instance";
  //打印子类成员及父类成员
  console.log(stu.name); //name in Student instance
  console.log(stu.supr.name); //name in Person
  console.log(stu.age); //28
})(window, undefined);

使用在线HTML/CSS/JavaScript代码运行工具 http://tools.jb51.net/code/HtmlJsRun,运行结果如下:

JavaScript实现多态和继承的封装操作示例

多态Polymorphism

有了继承,多态就好办了

//这就是继承了
(function (windows, undefined) {
  //父类
  function Person() { }
  Person.prototype.name = "name in Person";
  Person.prototype.learning = function () {
    console.log("learning in Person")
  }
  //子类
  function Student() { }
  Student.prototype = new Person();      //修复原型
  Student.prototype.constructor = Student;  //构造函数
  Student.prototype.supr = Person.prototype; //父类
  Student.prototype.learning = function () {
    console.log("learning in Student");
  }
  //工人
  function Worker() { }
  Worker.prototype = new Person();      //修复原型
  Worker.prototype.constructor = Worker;  //构造函数
  Worker.prototype.supr = Person.prototype; //父类
  Worker.prototype.learning = function () {
    console.log("learning in Worker");
  }
  //工厂
  var personFactory = function (type) {
    switch (type) {
      case "Worker":
        return new Worker();
        break;
      case "Student":
        return new Student();
        break;
    }
    return new Person();
  }
  //客户端
  var person = personFactory("Student");
  person.learning(); //learning in Student
  person = personFactory("Worker");
  person.learning(); //learning in Worker
})(window, undefined);

使用在线HTML/CSS/JavaScript代码运行工具 http://tools.jb51.net/code/HtmlJsRun,运行结果如下:

JavaScript实现多态和继承的封装操作示例

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

上一篇:nodejs 如何手动实现服务器
下一篇:浅谈微信小程序之官方UI框架we-ui使用教程
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap