网络编程
位置:首页>> 网络编程>> JavaScript>> JavaScript实现多态和继承的封装操作示例

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

作者:kkun  发布时间:2024-07-24 00:01:08 

标签: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);

运行结果如下:

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);

运行结果如下:

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

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

来源:http://www.cnblogs.com/kkun/archive/2012/01/06/2314885.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com