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

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號
精品国产柚木在线观看| 国产美女在线精品观看| 中文字幕久热精品视频在线| 日韩好片一区二区在线看| 牛牛本精品99久久精品| 日日夜夜精品视频| 久久精品国产99久久久古代 | 久久久久99精品成人片| 日韩精品少妇无码受不了| 精品国产av一二三四区| 精品欧美一区二区在线观看| 亚洲精品视频专区| 熟妇无码乱子成人精品| 日产精品一线二线三线京东| 亚洲精品美女久久久久99小说| 国产偷国产偷亚洲高清日韩| 国产精品成在线观看| 精品亚洲av无码一区二区柚蜜| 91精品国产色综久久| 久久久久久久99精品国产片| 尹人久久久香蕉精品| 精品一区二区无码AV| 伊人精品久久久久7777| 国产精品爽爽va在线观看无码| 精品多人p群无码| 人妻精品久久久久中文字幕69| 亚洲精品二区国产综合野狼| 99国产精品久久久久久久成人热| 国产精品美女久久久久AV福利| 午夜精品一区二区三区在线观看| 日韩免费的视频在线观看香蕉| 国产成人综合久久精品下载| 国产精品自在线天天看片| 久久99视频精品| 亚洲精品无码久久久久| 久久精品国产色蜜蜜麻豆| 精品国产爽爽AV| 国产精品免费久久| 亚洲婷婷国产精品电影人久久| vvvv99日韩精品亚洲| 一级做a爰黑人又硬又粗免费看51社区国产精品视 |