站長資訊網
        最全最豐富的資訊網站

        es6中什么是類的靜態成員

        在es6中,由類直接調用的屬性和方法叫靜態成員。在類里面對變量、函數加static關鍵字,那它就是靜態成員;靜態成員不會被實例化成為新對象的元素。靜態成員和實例成員的區別:1、實例成員屬于具體的對象,而靜態成員為所有對象共享;2、靜態成員是通過類名或構造函數訪問,實例成員是通過實例化的對象訪問。

        es6中什么是類的靜態成員

        前端(vue)入門到精通課程:進入學習
        Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

        本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

        面向對象

        面向對象的主要思想就是把需要解決的問題分解成一個個對象,建立對象不是為了實現一個步驟,而是為了描述每個對象在解決問題中的行為,面向對象的核心是對象

        面向對象的優勢:

        • 模塊化更深,封裝性強
        • 更容易實現復雜的業務邏輯
        • 更易維護、易復用、易擴展

        面向對象的特征:

        • 封裝性: 對象是屬性和行為的結合體
        • 多態性: 同一消息被不同的對象接收后 會產生不同的效果
        • 繼承性: 子類可以繼承父類的信息

        ES6面向對象語法

        ES6:ES是ECMAScript的簡寫,它是JavaScript的語法規范。ES6是在ES5基礎上擴展,增加了面向對象編程的相關技術以及類的概念。

        類和對象

        :具有相同屬性和行為的集合稱為類(類是對象的抽象),類中的大多數數據只能用本類的方法進行處理。
        對象:是類的實例(是類的具體化)

        class關鍵字:用來定義類的

        class 類名{// "類名"是一個用戶標識符 通常建議首字母大寫            屬性;            函數; }
        登錄后復制

        構造函數

        在ES6中使用constructor()來定義構造函數,作用是初始化對象的屬性(成員變量),構造函數不是必須的,若用戶沒有定義構造函數,系統會生成一個默認的、無參的構造函數。

        普通的成員函數

        函數名([參數]){      函數體語句 }
        登錄后復制

        變量名 = function([參數]){       函數體語句 }
        登錄后復制

                    class Person{                 constructor(name,age,sex){// 構造函數 初始化對象的成員                     this.name = name;// this指向構造函數新創建的對象                     this.age = age;                     this.sex = sex;                 }                     tt = function(){ //普通的成員函數 	                    console.log(this.name); 	                    console.log(this.age); 	                    console.log(this.sex);                 	}	             }             var p = new Person('李相赫',25,'男')// p1是一個對象 通過調用構造函數對p1的三個屬性進行了初始化             p.fun();
        登錄后復制

                class Circle{// 定義類Circlie             constructor(r){                 this.radius = r;             };             area(){ // 計算圓的面積                 var s = Math.PI*this.radius**2;                 return s;             };             // 計算圓的周長             CircleLength = function(){             return 2*Math.PI*this.radius;             };         };         var c1 = new Circle(5);         console.log('半徑為5的圓的面積='+c1.area());         console.log('半徑為5的圓的周長='+c1.Circle_length());
        登錄后復制

        結果如下:

        es6中什么是類的靜態成員

        		// 用類實現簡單的四則運算         class Number{// 定義類Number             constructor(n1,n2){                 this.n1=n1;                 this.n2=n2;             };             add(){                 var sum = this.n1+this.n2;                 return sum;             };             sub(){                 var sum1 = this.n1-this.n2;                 return sum1;             };             mut(){                 var sum2 = this.n1*this.n2;                 return sum2;             };             p(){                 if(this.n2!=0){                     var sum3 = this.n1/this.n2;                     return sum3;                 }             }         }         var p1 = new Number(12,21);         console.log(p1.add());         console.log(p1.sub());         console.log(p1.mut());         console.log(p1.p());
        登錄后復制

        ES6中類的繼承

        在JavaScript中,繼承用來表示兩個類之間的關系,子類可以繼承父類的一些屬性和方法,在繼承以后還可以增加自己獨有的屬性和方法。

        語法:

        class 子類名 extends 父類名{        函數體語句; };
        登錄后復制

        關于繼承需要注意:

        • 父類必須已經定義
        • 子類又稱為派生類 可以繼承父類的屬性和函數
        • 子類不能繼承父類的構造函數

        super關鍵字

        子類不可以繼承父類的構造函數,如果要調用父類的構造函數可以使用super關鍵字。

        **注意:**在子類的構造函數中使用super調用父類的構造函數,則調用語句必須作為子類構造函數的第一條語句

        調用父類構造函數

        super([參數])
        登錄后復制

        調用普通成員函數

        super.函數名([參數])
        登錄后復制

        方法覆蓋

        若子類中定義的函數與父類中的函數同名,子類函數覆蓋父類中的函數,可以在子類中調用父類的同名的普通成員函數來解決

                class Father{ //父類(基類或超類)             constructor(type,color){                 this.type = type;                 this.color = color;             }             money(){                 console.log(100);             }             show(){                 console.log('類型:'+this.type);                 console.log('顏色:'+this.color);             }         }         class Son extends Father{ //Son是子類(又稱派生類)             constructor(type,color,weight){                 super(type,color); //調用父類的構造函數 要放在首位                 this.weight = weight;             };             show(){                 super.show();// 調用父類的普通成員函數                 console.log('重量:'+this.weight);             };             other(){                 return '子類的其他方法';             };         };         var s1 = new Son('iPhone 12','黑色','3000g');//s1為子類的實例         s1.show();         console.log(s1.other());
        登錄后復制

        es6中什么是類的靜態成員

        靜態成員和實例成員

        靜態成員:通過類名構造函數訪問的成員

        實例成員:通過實例對象訪問的成員稱為實例成員

        區別:

        • 實例成員屬于具體的對象,而靜態成員為所有對象共享
        • 靜態成員是通過類名構造函數訪問,實例成員是通過實例化的對象訪問

        在ES5中定義靜態屬性

                function Student(name,age,sex){             Student.school = '西安郵電大學';// school是靜態成員             this.name = name;             this.age = age;             this.sex = sex;// name age sex都是實例成員             this.show = function(){                 console.log('姓名:'+this.name);                 console.log('年齡:'+this.age);                 console.log('性別:'+this.sex);             };         };         var f = new Student('李相赫',23,'男');         f.show();         console.log(Student.school);// 西安郵電大學         console.log(f.school);// undefined
        登錄后復制

        在ES6中靜態屬性定義

        1、先創建類

        2、在類的外部定義靜態屬性:類名.靜態屬性名

                class Foo{             constructor(){                 this.color = '紅色';// color是實例成員             }         }         Foo.prop = 45;// prop是靜態成員         var f1 = new Foo();         console.log('靜態屬性:'+Foo.prop);// 45         console.log(f1.prop);// undefined
        登錄后復制

        在ES7中靜態屬性定義

        在類定義時 使用static關鍵字定義靜態屬性

                class Foo{             static prop = 45; //prop是靜態成員             constructor(){                 this.color = '紅色';             }         }         var f2 = new Foo();         console.log('靜態屬性:'+Foo.prop);// 45         console.log(f2.prop);// undefined
        登錄后復制

        類和構造函數的區別

        類中的成員方法是定義在類中的,使用類創建對象后,這些對象的方法都是引用了同一個方法,這樣可以節省內存空間。

        	class Person { 		sing(){ 			console.log('hello'); 		} 	} 	var p1 = new Person(); 	var p2 = new Person(); 	console.log(p1.sing === p2.sing);	// 輸出結果:true
        登錄后復制

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 成人免费精品网站在线观看影片| 办公室久久精品| 97精品国产自在现线免费观看| 午夜精品射精入后重之免费观看 | 久久精品成人欧美大片| 国精品午夜福利视频不卡| 精品人妻无码专区中文字幕| 国产精品中文字幕在线观看| 日本一卡精品视频免费| 无码精品第一页| 国内精品久久久久久久亚洲 | 国产AV无码专区亚洲精品 | 青青热久久国产久精品| 97视频在线精品国自产拍| 国产精品久久久久久福利漫画| 国内精品久久久久伊人av| 日韩AV无码精品人妻系列| 最新国产成人精品2024| 欧美成人精品第一区二区三区| 成人国内精品久久久久影院VR | 一级成人精品h| 国内精品在线视频| 97精品一区二区视频在线观看| 日韩精品久久久久久久电影蜜臀| 亚洲精品国产电影| 亚洲欧美日韩国产一区二区三区精品 | xxx国产精品视频| 精品无码人妻一区二区三区| 无码人妻精品一区二区三区东京热 | 国产女人18毛片水真多18精品| 91精品国产91久久久久久| 欧美性videofree精品| 国产在线精品一区二区不卡| 久久精品国产91久久综合麻豆自制| 国产AV午夜精品一区二区三区| 精品国产一区二区三区无码| 国产精品视频永久免费播放| 国产成人vr精品a视频| 国产精品污视频| 国产成人综合久久精品尤物| 国产精品永久久久久久久久久|