JS函数进阶之继承用法实例分析

 更新时间:2020年01月15日 11:08:35   作者:qq_42412646  
这篇文章主要介绍了JS函数进阶之继承用法,结合实例形式分析了JavaScript函数继承相关定义与使用操作技巧,需要的朋友可以参考下

本文实例讲述了JS函数进阶之继承用法。分享给大家供大家参考,具体如下:

直接代码,不解释:

<html>
    <head>
        <title>js函数继承进阶</title>
        <meta charset="UTF-8"/>
        <script type="text/javascript">
            function person(name,age){  //对象的创建
                this.name=name;
                this.age=age;
//                this.test=function(a){
//                    console.log("能运行吗");
//                }
            }
            function book(name){
                this.name="是我吗";
                this.lookat=function(a){
                    console.log("看看能行吗");
                }
            }
            function czxt(name){
                this.name=name;
            }
            person.prototype.read=function(a){console.log("I can read");};
            book.prototype.sign=function(a){console.log("I am book"); return new book()};    //视其为一个对象的一个属性进行”继承“
            person.prototype.book=new book();               //直接进行“包含”
//            person.prototype=new book();
            czxt.prototype.appear=function(a){console.log("我是操作系统")};
            book.prototype.subject=new czxt();
//            book.prototype=new czxt();
            var p1=new person("张三",37);
//            p1.lookat();    //类内部的方法也可以调用
//            console.log(p1.name);   //包含类和父类都含有,是父类的name属性值。  "张三"
            console.log(p1.book.name); //用属性进行调用的话,是包含类的name属性   ”是我吗“
//            p1.sign();     //直接调用包含函数方法
//            p1.book.sign();   //调用对象属性包含的方法
//            p1.read();     //调用公共对象外函数
//            p1.test();    //函数调用函数内部的函数(视函数为对象)
//            p1.address="山东"; //每个特定对象主动添加对象属性
//            console.log(p1.address);
            var b1=new book();
//            b1.appear();   //调用其继承体内的函数
//            p1.appear();   //无法调用包含对象内的包含方法(无法直接调用孙子函数)
//            p1.book.appear();  //用属性调用也不行啊,不是函数可还行
//            p1.book.subject.appear(); //双重属性定义可以,牛逼了。
//            p1.sign().appear();  //person非属性调用book,在book的sign方法中添加一个book类型的返回值以此来调用book包含的方法。
        </script>
    </head>
    <body>
        <h3>js函数继承进阶</h3>
    </body>
</html>

运行结果:

进一步理解,引入prototype,一方面是实现了同一个类创建对象时创建实现相同功能的方法,这些方法在对象创建时同样会占用内存,所以我们把方法定义到外面变成公共的方法,节省了内存(注:如果是类内部的方法构建两个对象时其内部的函数时不同的,不相等且不等同)另一方面,降低了代码的冗余,其中当你把一个类的prototype值设置为一个对象,那么你就拥有了其内部的属性和方法,当进行包含后可以直接利用带属性调用或者直接调用,这样有一个好处是:我们没有必要创建这个对象就可以直接调用其内部的方法。但是对于三层的包含关系,我们不能使用,要想使用就只能用连续双重的属性调用。对于内部属性值如果子类和父类的属性名相同,那么直接调用就是父类的属性,利用属性调用包含类可以调用子类的属性。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结

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

相关文章

  • javascript中的void运算符语法及使用介绍

    javascript中的void运算符语法及使用介绍

    void是javascript中的一个操作符,void会计算表达式的值,但是会丢弃表达式的返回值接下来将详细介绍下,感兴趣的你可以参考下或许对你有所帮助
    2013-03-03
  • javascript时间函数基础介绍

    javascript时间函数基础介绍

    这篇文章主要介绍了javascript中提供了Date对象来进行时间和日期的计算,这里简单的介绍下, 方便需要的朋友
    2013-03-03
  • thinkjs微信中控之微信鉴权登陆的实现代码

    thinkjs微信中控之微信鉴权登陆的实现代码

    这篇文章主要介绍了thinkjs微信中控之微信鉴权登陆的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JavaScript onclick与addEventListener使用的区别介绍

    JavaScript onclick与addEventListener使用的区别介绍

    addEventListener()方法用于向指定元素添加事件句柄,使用 removeEventListener()方法来移除,onclick和addEventListener事件区别是:onclick事件会被覆盖,而addEventListener可以先后运行不会被覆盖,addEventListener可以监听多个事件
    2022-09-09
  • electron制作仿制qq聊天界面的示例代码

    electron制作仿制qq聊天界面的示例代码

    这篇文章主要介绍了electron制作仿制qq聊天界面的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Javascript单线程和事件循环

    Javascript单线程和事件循环

    这篇文章主要介绍了Javascript单线程和事件循环,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • 前端图片懒加载(lazyload)的实现方法(提高用户体验)

    前端图片懒加载(lazyload)的实现方法(提高用户体验)

    图片懒加载又称图片延时加载、惰性加载,即在用户需要使用图片的时候加载,这样可以减少请求,节省带宽,提高页面加载速度,相对的,也能减少服务器压力,下面通过本文给大家分享图片懒加载lazyload的实现方法,感兴趣的朋友一起看看吧
    2017-08-08
  • JavaScript自定义文本框光标

    JavaScript自定义文本框光标

    本篇文章主要介绍了JavaScript自定义文本框光标的方法实例,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • JavaScript error浏览器端错误捕获处理方法笔记解决示例

    JavaScript error浏览器端错误捕获处理方法笔记解决示例

    这篇文章主要为大家介绍了JavaScript error浏览器端错误捕获处理方法笔记解决示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 完全深入学习Bootstrap表单

    完全深入学习Bootstrap表单

    Bootstrap表单用来与用户做交流的一个网页控件,实现网页与用户更好的沟通,这篇文章主要就为大家介绍了Bootstrap表单中常见的元素,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11

最新评论