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

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

最简单的类

        function Person() {
            this.name = 'lisi';
            this.age = 20;
        }
        var p = new Person();
        alert(p.name);

clipboard.png

构造函数和原型链里增加方法

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

clipboard.png

clipboard.png

clipboard.png

类里的静态方法

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

clipboard.png

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

clipboard.png

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

clipboard.png

clipboard.png

原型链实现继承的问题

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

clipboard.png

clipboard.png

原型链+对象冒充的组合继承模式

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

clipboard.png

clipboard.png

原型链+对象冒充的另一种方式

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

clipboard.png

clipboard.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101123.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • f1 score java_F1 score「建议收藏」

    f1 score java_F1 score「建议收藏」项目中需要判断用户提交的多选题选项的正确率,比如正确答案应该为a,b,c,而用户选择的是a,d,那么如何判断他的正确率呢,这个场景就需要用到F1score来计算。FromWikipedia,thefreeencyclopediahttp://en.wikipedia.org/wiki/F1_scoreInstatisticalanalysisofBinaryclassi…

    2022年10月15日
    3
  • 关于c++数的进制的经验

    默认状态下,数据按十进制输入输出。如果要求按八进制或十六进制输入输出,在cin或cout中必须指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。注意:1.使用不带.h的头文件时,必

    2021年12月20日
    47
  • ros的安装教程_ROS教程

    ros的安装教程_ROS教程总结一下这两天安装ROS的过程。1配置软件库桌面左侧栏点searchyourcomputer,输入updates,点Software&Updates,将main,universe,multiuniverse,restricted全都勾上,将Downloadfrom换成中科大的http://mirrors.ustc.edu,cn/ubuntu2…

    2025年10月22日
    4
  • python偏函数理解_python进阶书籍的推荐

    python偏函数理解_python进阶书籍的推荐什么是偏函数partialpython中提供一种对于函数固定属性的函数偏函数的作用把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数偏函数的语法使用偏函数必须先导入from

    2022年8月7日
    11
  • WOL(Wake On LAN – 局域网唤醒)外网唤醒 配置教程 远程开机「建议收藏」

    WOL(Wake On LAN – 局域网唤醒)外网唤醒 配置教程 远程开机「建议收藏」前言(也叫废话):虽然这个功能叫局域网唤醒,但配合路由器的端口映射功能,广域网唤醒也是可以的。只要有一台能上网的电脑或手机,就能把家中电脑打开,需要用电脑又不在家的时候很方便。一、开启WOL功能进BIOS进入BIOS后找一下有没有WakeOnLAN、网卡唤醒、WOL等字样的选项,找到后启用。二、注册花生壳账号传送门:https://console.oray.com/passport…

    2022年5月5日
    1.4K
  • Python获取图像大小_如何读取0像素图片

    Python获取图像大小_如何读取0像素图片在一张图片中,我们可以获取它的宽和高的像素大小fromPILimportImageimage=Image.open(‘图片的路径’)imagePixmap=Image.size #宽高像素print(imagePixmap)但是在使用百度OCR进行文字识别的时候,文字识别的图片大小不能超过4M,在自动识别文字的时候,就避免不了读取图片的内存大小,如果是大于4M的话,要对图片进行压缩,下面是读取图片内存的代码:importosimagePath=os.path.joi

    2025年10月26日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号