资讯专栏INFORMATION COLUMN

TypeScript--es5中的类,继承,静态方法

KevinYan / 402人阅读

摘要:最简单的类构造函数和原型链里增加方法在运动男在工作类里的静态方法在运动我是静态方法男在工作里面的继承,对象冒充实现继承只有一个弹框,说明没有继承到上的方法在运动男在工作类继承类里面的继承,原型链实现继承在运动男在工作类继承类原型链实现继承的

最简单的类
        function Person() {
            this.name = "lisi";
            this.age = 20;
        }
        var p = new Person();
        alert(p.name);

构造函数和原型链里增加方法
        function Person() {
            this.name = "lisi";
            this.age = 20;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }
        Person.prototype.sex = "男";
        Person.prototype.work = function() {
            alert(this.name + "在工作");
        }

        var p = new Person();
        alert(p.name);
        p.run();
        p.work()

类里的静态方法
        function Person() {
            this.name = "lisi";
            this.age = 20;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }
        Person.getInfo = function() {
            alert("我是静态方法")
        }

        Person.prototype.sex = "男";
        Person.prototype.work = function() {
            alert(this.name + "在工作");
        }
        var p = new Person();
        // p.work();
        Person.getInfo()

es5里面的继承,对象冒充实现继承

只有一个弹框,说明没有继承到prototype上的方法

        function Person() {
            this.name = "lisi";
            this.age = 20;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }

        Person.prototype.sex = "男";
        Person.prototype.work = function() {
                alert(this.name + "在工作");
            }
            //Web类继承Person类
        function Web() {
            Person.call(this);
        }
        var w = new Web();
        w.run();
        w.work();

es5里面的继承,原型链实现继承
        function Person() {
            this.name = "lisi";
            this.age = 20;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }

        Person.prototype.sex = "男";
        Person.prototype.work = function() {
                alert(this.name + "在工作");
            }
            //Web类继承Person类
        function Web() {

        }
        Web.prototype = new Person();
        var w = new Web();
        w.run();
        w.work();

原型链实现继承的问题
        function Person(name, age) {
            this.name = name;
            this.age = age;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }

        Person.prototype.sex = "男";
        Person.prototype.work = function() {
            alert(this.name + "在工作");
        }

        function Web(name, age) {

        }
        Web.prototype = new Person();
        var w = new Web("lisi", 20)
        w.run()
        w.work()

原型链+对象冒充的组合继承模式
        function Person(name, age) {
            this.name = name;
            this.age = age;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }

        Person.prototype.sex = "男";
        Person.prototype.work = function() {
            alert(this.name + "在工作");
        }

        function Web(name, age) {
            Person.call(this, name, age);
        }
        Web.prototype = new Person();
        var w = new Web("lisi", 20)
        w.run()
        w.work()

原型链+对象冒充的另一种方式
        function Person(name, age) {
            this.name = name;
            this.age = age;
            this.run = function() {
                alert(this.name + "在运动");
            }
        }

        Person.prototype.sex = "男";
        Person.prototype.work = function() {
            alert(this.name + "在工作");
        }

        function Web(name, age) {
            Person.call(this, name, age);
        }
        Web.prototype = Person.prototype;
        var w = new Web("lisi", 20)
        w.run()
        w.work()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101668.html

相关文章

  • angular2初入眼帘之-搭个环境

    angular2是什么?我猜不容我赘述,各位一定略有耳闻,无论是曾经AngularJS的拥趸,亦或是React的粉丝,都或多或少的对她有过一点了解。未见其物、先闻其声,angular2在问世之前已经做足了宣传,想必诸位也一定被下面各种词汇所震慑,什么:TypeScript、 ES5、 ES6、 Dart、 Immutable、 Unidirectional Data Flow、 Reactive ...

    everfight 评论0 收藏0
  • java学习(三) —— 面对对象

    摘要:前言是面对对象的语言,因此有必要单独纪录下对象的各种定义和理解。面对对象基本概述概述是基于面向过程的变成思想,是对面向过程的一种封装。面对对象开发就是不断的创建对象,使用对象,指挥对象做事情。面对对象设计其实就是在管理和维护对象之间的关系。 前言 java是面对对象的语言,因此有必要单独纪录下对象的各种定义和理解。 面对对象,主要包括:面向对象思想,类与对象及其使用,对象的内存图,成...

    褰辩话 评论0 收藏0
  • php易错笔记-类与对象,命名空间

    摘要:类与对象基本概念如果在之后跟着的是一个包含有类名的字符串,则该类的一个实例被创建。如果该类属于一个名字空间,则必须使用其完整名称。如果一个类被声明为,则不能被继承。命名空间通过关键字来声明。 类与对象 基本概念 new:如果在 new 之后跟着的是一个包含有类名的字符串,则该类的一个实例被创建。如果该类属于一个名字空间,则必须使用其完整名称。 Example #3 创建一个实例 ...

    MartinHan 评论0 收藏0
  • PHP面向对象

    摘要:面向对象面向对象基础面向对象什么是类具有相同属性特征和方法行为的一系列个体的集合,类是一个抽象的概念。析构函数,当一个对象被销毁前,自动调用。作用是为新克隆的对象进行初始化赋值对象序列化时,自动调用。使用抽象类的作用限制实例化。 面向对象 面向对象基础 面向对象 什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念。 什么是对象? 从类中,拿到的具有具体...

    seanlook 评论0 收藏0
  • Java 抽象类、接口、内部类

    摘要:即使抽象类里不包含抽象方法,这个抽象类也不能创建实例抽象类可以包含成员变量方法普通方法和抽象方法构造器初始化块内部类接口枚举种成分。 抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体。但在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确地知道这些子类如何实现这些方法。使用抽象方法即可满足该要求:抽象方法是只有...

    miguel.jiang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<