【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.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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值