首页 > 编程 > JavaScript > 正文

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

2019-11-19 13:12:33
字体:
来源:转载
供稿:网友

本文实例讲述了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.VeVB.COm/code/HtmlJsRun,运行结果如下:

多态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.VeVB.COm/code/HtmlJsRun,运行结果如下:

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表