zoukankan      html  css  js  c++  java
  • extend扩展,extends继承

    相信对extend这个关键字大家都不陌生,当然extends在开发中好像碰到的更多些,今天就来和大家说说这两者的区别,不足之处欢迎大家斧(扶)正~~

    首先,讲讲在前端web开发中我们用到的extend,我们使用频率最高的jquery框架中extend可是工具函数扩展中不可或缺的关键字。

    extend有两大作用:

    1.使用$.extend()扩展工具函数。代码展示会更直观,代码如下:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7     <title>extend扩展函数</title>
     8     <script src="js/jquery.min.js"></script>
     9 </head>
    10 <body>
    11     <script type="text/javascript">
    12         $(function(){
    13             $.extend({
    14                 hello:function(str){
    15                     alert('hello'+str+'!')
    16                 }
    17             });
    18             $.hello('java');
    19         })
    20     </script>
    21 </body>
    22 </html>

    页面运行的结果:hello java !

    2.使用$.extend()扩展Object

    $.extend除了可以扩展jquery本身函数之外,另外就是扩展已有的Object对象了。通常使用的语法格式如下:

    $.extend(target,[object1],[object2].....);

    1 var objTotal = $.extend(obj1,obj2..);
    2 $.each(objTotal,function(key,value){
    3     li +="<li>"+key+":"+value+"</li>";
    4 });
    5 $("ul").append(li);

    这就是前端开发关于extend扩展所知的两个用途,那接下来再谈谈extends这个关键字的用法。

    当然了前端vue框架一样也用到了这个关键字extend,代码如下:

    var apple = Vue.extend({
    ....
    })
    Vue.component('apple',apple);

    extends这个关键字在javaweb开发中前后端都有用到,先来讲讲在前端的用法,讲到前端我们就不能忘了大名鼎鼎的react框架,

    在react中主要起的是继承作用,代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <script src = "node_modules/react/umd/react.development.js"></script>
        <script src = "node_modules/react-dom/umd/react-dom.development.js"></script>
        <script src = "node_modules/babel-standalone/babel.min.js"></script>
        <title>component</title>
        <style></style>
    </head>
    <body>
        <div id = "example"></div>
        <script type = "text/babel">
            class HelloMessage extends React.Component{
                render(){
                    return <h1>hello,{this.props.name}</h1>
                }
            };
            
            ReactDOM.render(
                <HelloMessage name = "chehl00"/>,
                document.getElementById('example')
            );
        </script>
    </body>
    </html>

    有没有赶脚在Vue和react中extend,extends用法很相似,这也是一种相互借鉴哦,然后实现各自功能。

    然后我们再来说说,extends在java后端开发中的用法:

    class A{
    int i;
    void f(){}
    }
    class B extends A{
    int j;
    void f(){}      //重写
    void g(){}
    }

    那么,
    B b = new B();
    b就是子类对象的实例,不仅能够访问自己的属性和方法,也能够访问父类的属性和方法。诸如b.i,b.j,b.f(),b.g()都是合法的。此时 b.f()是访问的B中的f()
    A a = new B();
    a虽然是用的B的构造函数,但经过upcast,成为父类对象的实例,不能访问子类的属性和方法。a.i,a.f()是合法的,而a.j,a.g()非 法。此时访问a.f()是访问B中的f()

    综上:extends, 可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。

    extend,extends这两个关键字在开发中,还是很重要很关键的,以上就是我今天想要和大家分享的内容。如有描述不科学,不严谨地方,欢迎指正~~~~

  • 相关阅读:
    boost::timer库使用
    List的子类特点
    Exception in thread "main" java.util.ConcurrentModificationException解决方案
    Java中的集合Collection
    数组和集合的区别
    jsp 九大内置对象
    include指令与jsp:include动作标识的区别
    idea 2018注册码(激活码)
    内存的页面置换算法
    MYSQL的两种存储引擎区别
  • 原文地址:https://www.cnblogs.com/chehl0110/p/9366617.html
Copyright © 2011-2022 走看看