JavaScript实现多态和继承的封装操作示例
本文实例讲述了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,运行结果如下:

多态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程序设计有所帮助。
相关文章
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
这篇文章主要介绍了微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-07-07
深入学习js函数的隐式参数 arguments 和 this
这篇文章主要介绍了 深入学习js函数的隐式参数 arguments 和 this,arguments是一个类数组结构,它保存了调用时传递给函数的所有实参;this是函数执行时的上下文对象, 这个对象有些让人感到困惑的行为。 下面分别对他们进行讨论。,需要的朋友可以参考下2019-06-06


最新评论