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這兩個關鍵字在開發中,還是很重要很關鍵的,以上就是我今天想要和大家分享的內容。如有描述不科學,不嚴謹地方,歡迎指正~~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM