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程序设计有所帮助。

以上是 JavaScript实现多态和继承的封装操作示例 的全部内容, 来源链接: utcz.com/z/346417.html

回到顶部