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

2018-10-15 17:30

阅读:568

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

封装Encapsulation

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

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

继承Inheritance

(function (windows, undefined) { //父类= name in Person; //子类 function Student() { } Student.prototype = new Person(); //修复原型structor = 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代码运行工具,运行结果如下:

多态Polymorphism

有了继承,多态就好办了

//这就是继承了 (function (windows, undefined) { //父类= name in Person; Person.prototype.learning = function () { console.log(learning in Person) } //子类 function Student() { } Student.prototype = new Person(); //修复原型structor = 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代码运行工具,运行结果如下:

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

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


评论


亲,登录后才可以留言!