ES6入門教程之Class和Module詳解

2022-09-29 17:21:21 字數 2802 閱讀 9976

一、class

es6引入了class(類)這個概念,作為物件的模板。通過class關鍵字,可以定義類。

// 定義類

class point()

tostring()

} var point = new point(2, 3);

point.tostring(); //(2, 3)

在上面的**片段裡,先是定義了乙個point類,裡面還有乙個constructor函式,這就是建構函式。而this關鍵字則代表例項物件。

cl之間可以通過extends關鍵字實現繼承

class colorpoint extends point

tostring()

}二、module的基本用法

1>、export和import

es6實現了模組功能,視**決j**ascript**的依www.cppcns.com賴和部署上的問題,取代現有的commonjs和amd規範,成為瀏覽器和伺服器通用的模組解決方案。

模組的功能有兩個關鍵字: export和import。export用於使用者自定義模組。規定對外介面;import用於輸入其他模組的功能,同時建立命名空間(namespace),防止函式名衝突。

es6允許將獨立的js檔案作為模組,也就是說,允許乙個j**ascript指令碼檔案呼叫另乙個指令碼檔案。最簡單的模組就是乙個js檔案,裡面使用export關鍵字輸出變數。

export var firstname = "pandora";

export var lastname = "g.dragon";

export var year = 1973;

//export還有下面這種寫法,兩者是等價的

var firstname = "pandora";

var lastname = "g.dragon";

var year = 1973;

export();

使用export定義模組之後,其他js檔案就可以通過import關鍵字載入這個模組(檔案)了。載入方式如下:

import from './profile';

function setheader(element)

上面的**片段中,使用了import關鍵字接受乙個物件——用「」表示。裡面指定了要從其他模組中匯入的變數。大括號裡面的變數名必須與被匯入模組對外介面的名稱相同。

但是,如果要給輸入的屬性和方法重新取乙個名字,import語句要寫成下面這樣。

import from './exporter';

2>、模組的整體載入

export關鍵字除了輸出變數,還可以輸出方法或類(class)。看看下面**:

// circle.js

// 方法-1: 返回圓的面積

export function area(radius)

// 方法-2: 返回圓的周長

export function circumference(radius)

下面,定義乙個main.js檔案引用上面的模組。

// mian.js

import from 'circle';

console.log("圓面積: " + area(4));

console.log("圓周長: " + circumference(14));

上面的寫法是逐一制定要匯入的方法。但是還有另外一種寫法,就是使用module關鍵字,整體匯入。

// main.js

module circle from 'circle';

console.log("圓面積: " + circle.area(4));

console.log("圓周長: " + circle.circumference(14));

module關鍵字後面跟著乙個變數,表示匯入的模組定義在該變數上。

3>、export default語句

如果不想為某個屬性或方法制定輸入的名稱,可以使用export default語句。

// export-default.js

export default function foo()

當在其它模組中匯入該模組時,import語句可以為預設方法指定任意名字。

// import-default.js

import customname from './export-default';

customname(); //'foo'

顯然,乙個模組只能由乙個預設方法。

對於預設屬性,則是直接定義在export default後面即可。如下**所示:

export default 42;

三、模組的繼承

模組之間是可以繼承的。

現在,假設乙個circleplus模組繼承了circle模組。**如下:

export * from 'circle'; // "export *"表示輸出circle模組的所有屬性和方法

export var e = 2.71828;

export default function(x)

這時,可以對cicle中的屬性和方法改名後再輸出。

export from 'circle';

載入模組的寫法如下:

module math from 'circleplus';

import exp from "circleplus"; // "import exp"表示將circleplus模組的預設方法載入為exp方法。

console.log( exp(math.pi) );

總結本文標題: es6入門教程之class和module詳解

本文位址: /ruanjian/j**a/191050.html

ES6入門教程之let和const命令詳解

前言 在j ascript中,我們都知道使用var來宣告變數。j ascript是函式級作用域程式設計客棧,函式內可以訪問函式外的變數,函式外不能訪問函式內的變數。函式級作用域會導致一些問題就是某些 塊內的變數會在全域性範圍內有效,這我們是非常熟悉的 for var i 0 i 10 i conso...

ES6入門 Class 的繼承

es6 提供了更接近傳統語言的寫法,引入了 class 類 這個概念,作為物件的模板。通過class關鍵字,可以定義類。基本上,es6 的class可以看作只是乙個語法糖,它的絕大部分功能,es5 都可以做到,新的class寫法只是讓物件原型的寫法更加清晰 更像物件導向程式設計的語法而已。傳統物件導...

ES6的class和繼承

二.class 的繼承 function myfun x,y myfun.prototype.function var a newmyfun 1 2 class myfun 類的內部所有定義的方法,都是不可列舉的 object.keys myfun.prototype 1.所有的類都有乙個const...