【JavaScript】JavaScript中的封装继承多态

来源:互联网 发布:js分页代码 编辑:程序博客网 时间:2024/06/05 09:56

封装(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.supr.name = "name in Student instance";     //打印子类成员及父类成员    alert(stu.name); //name in Student instance    alert(stu.supr.name); //name in Person    alert(stu.age); //28 })(window, undefined);

多态(Polymorphism)

有了继承,多态就好办了

<pre name="code" class="javascript">//这就是继承了(function (windows, undefined) {    //父类    function Person() { }    Person.prototype.name = "name in Person";    Person.prototype.learning = function () {        alert("learning in Person")    }     //子类    function Student() { }    Student.prototype = new Person();           //修复原型    Student.prototype.constructor = Student;    //构造函数    Student.prototype.supr = Person.prototype;  //父类    Student.prototype.learning = function () {        alert("learning in Student");    }     //工人    function Worker() { }    Worker.prototype = new Person();           //修复原型    Worker.prototype.constructor = Worker;    //构造函数    Worker.prototype.supr = Person.prototype;  //父类    Worker.prototype.learning = function () {        alert("learning in Worker");    }     //工厂    var personFactory = function (type) {        switch (type) {            case "Worker":                return new Worker();                break;            case "Student":                return new Student();                break;        }        return new Person();    } 


 客户端:

<pre name="code" class="javascript"> var person = personFactory("Student");    person.learning(); //learning in Student    person = personFactory("Worker");    person.learning(); //learning in Worker })(window, undefined);


Java与JavaScript的区别

一、首先,这两个家伙的本质也不一样,java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,即使是开发简单的程序,也必须设计对象;而JavaScript是一种直译式脚本语言,它本身提供了非常丰富的内部对象供设计人员使用。

二、其次它们的执行方式也是不一样的,Java是介于解释型和编译型语言之间的一种语言,java的源代码在传递到客户端执行之前,必须经过编译,通过相应平台上的解释器,实现独立于某个特定的平台编译代码的束缚。JavaScript是一种解释性编程语言,其源代码在发往客户执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。

三、再其次两者的用途也不一样,java广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等,而Javascript的用途是:1.嵌入动态文本于HTML页面;2.对浏览器事件做出响应; 3.读写HTML元素;4.在数据被提交到服务器之前验证数据;5.检测访客的浏览器信息; 6.控制cookies,包括创建和修改等。




 


 

   

1 0
原创粉丝点击