ES6透過什麼定義類
在ES6中,class(類別)作為物件的模板被引入,可以透過「class」關鍵字來定義類別。 class的本質是function,它可以看成一個語法糖,讓物件原型的寫法更加清晰、更像物件導向程式設計的語法。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
ES6 Class
在ES6中,class(類別)作為物件的模板被引入,可以透過「class」關鍵字來定義類。
class 的本質是 function。
基本上,ES6的class可以看成只是一個語法糖,它的絕大部分功能,ES5都可以做到,新的class寫法只是讓物件原型的寫法更加清晰、更像物件導向程式設計的語法而已。
基礎用法
類別定義
##類別表達式可以匿名或命名。// 匿名类 let Example = class { constructor(a) { this.a = a; } } // 命名类 let Example = class Example { constructor(a) { this.a = a; } }
類別宣告
class Example { constructor(a) { this.a = a; } }
class Example{} class Example{} // Uncaught SyntaxError: Identifier 'Example' has already been // declared let Example1 = class{} class Example{} // Uncaught SyntaxError: Identifier 'Example' has already been // declared
注意要點:
類別定義不會被提升,這意味著,必須在存取前對類別進行定義,否則就會報錯。 類別中方法不需要 function 關鍵字。 方法間不能加分號。new Example(); class Example {}
類別的主體
#屬性
prototypeES6 中,prototype 仍舊存在,雖然可以直接自類別中定義方法,但其實方法還是定義在prototype 上的。覆寫方法/ 初始化時新增方法Example.prototype={ //methods }
Object.assign(Example.prototype,{ //methods })
class Example { // 新提案 static a = 2; } // 目前可行写法 Example.b = 2;
class Example{} Example.prototype.a = 2;
class Example { a = 2; constructor () { console.log(this.a); } }
let Example=class Exam { constructor(a) { this.a = a; } } console.log(Example.name); // Exam let Example=class { constructor(a) { this.a = a; } } console.log(Example.name); // Example
方法
constructor 方法constructor 方法是類別的預設方法,在建立類別的實例化物件時被呼叫。class Example{ constructor(){ console.log('我是constructor'); } } new Example(); // 我是constructor
class Test { constructor(){ // 默认返回实例对象 this } } console.log(new Test() instanceof Test); // true class Example { constructor(){ // 指定返回对象 return new Test(); } } console.log(new Example() instanceof Example); // false
class Example{ static sum(a, b) { console.log(a+b); } } Example.sum(1, 2); // 3
class Example { sum(a, b) { console.log(a + b); } } let exam = new Example(); exam.sum(1, 2); // 3
class Example { constructor() { this.sum = (a, b) => { console.log(a + b); } } }
#類的實例化
new
class 的實例化必須透過new 關鍵字。class Example {} let exam1 = Example(); // Class constructor Example cannot be invoked without 'new'
實例化物件
共享原型物件class Example { constructor(a, b) { this.a = a; this.b = b; console.log('Example'); } sum() { return this.a + this.b; } } let exam1 = new Example(2, 1); let exam2 = new Example(3, 1); // __proto__ 已废弃,不建议使用 // console.log(exam1.__proto__ == exam2.__proto__); console.log(Object.getPrototypeOf(exam1) === Object.getPrototypeOf(exam2));// true Object.getPrototypeOf(exam1).sub = function() { return this.a - this.b; } console.log(exam1.sub()); // 1 console.log(exam2.sub()); // 2
以上是ES6透過什麼定義類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

類別和方法的概念和實例類別(Class):用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類別的實例。方法:類別中定義的函數。類別的建構方法__init__():類別有一個名為init()的特殊方法(建構方法),該方法在類別實例化時會自動呼叫。實例變數:在類別的宣告中,屬性是用變數來表示的,這種變數就稱為實例變量,實例變數就是用self修飾的變數。實例化:建立一個類別的實例,類別的具體物件。繼承:即一個派生類別(derivedclass)繼承基底類別(baseclass)的

PHP報錯:無法重複聲明類,解決方法!對開發者而言,遇到問題是常有的事情。而在PHP開發中,常會遇到一個常見的錯誤:無法重複聲明類別。這個問題看似簡單,但如果不及時解決,會導致程式碼無法正確執行。本文將介紹這個問題的原因,並提供解決方法,以供參考。當我們在PHP程式碼中定義一個類別時,如果在同一個檔案或多個檔案中多次定義同一個類,就會出現無法重複聲明類別的錯誤。這是

PHP中的命名規範:如何使用駝峰命名法命名類別、方法和變數在PHP程式設計中,良好的命名規範是一種重要的編碼實踐。它可以提高程式碼的可讀性和可維護性,並且使團隊合作更加順暢。在本文中,我們將探討一個常見的命名規格:駝峰命名法,並提供一些範例來說明如何在PHP中使用它來命名類別、方法和變數。一、什麼是駝峰命名法?駝峰命名法是一種常用的命名約定,其中每個單字的首字母大寫,

jQuery是一種經典的JavaScript庫,被廣泛應用於網頁開發中,它簡化了在網頁上處理事件、操作DOM元素和執行動畫等操作。在使用jQuery時,常會遇到需要取代元素的class名稱的情況,本文將介紹一些實用的方法,以及具體的程式碼範例。 1.使用removeClass()和addClass()方法jQuery提供了removeClass()方法來刪除

在編寫PHP程式碼時,使用類別(Class)是一個非常常見的做法。透過使用類,我們可以將相關的功能和資料封裝在一個單獨的單元中,使程式碼更加清晰、易於閱讀和易於維護。本文將詳細介紹PHPClass的用法,並提供具體的程式碼範例,幫助讀者更好地理解如何在實際專案中應用類別來優化程式碼。 1.建立和使用類別在PHP中,可以使用關鍵字class來定義一個類,並在類別中定義屬性和方法。

PHP中的封裝技術及應用封裝是物件導向程式設計中的重要概念,它指的是將資料和資料的操作封裝在一起,以便提供對外部程式的統一存取介面。在PHP中,封裝可以透過存取控制修飾符和類別的定義來實現。本文將介紹PHP中的封裝技術及其應用場景,並提供一些具體的程式碼範例。一、封裝的存取控制修飾符在PHP中,封裝主要透過存取控制修飾符來實現。 PHP提供了三個存取控制修飾符,

Vue報錯:無法正確使用v-bind綁定class和style,怎麼解決?在Vue開發中,我們常常會用到v-bind指令來動態綁定class和style,但是有時候我們可能會遇到一些問題,如無法正確使用v-bind綁定class和style。在本篇文章中,我將為你解釋這個問題的原因,並提供解決方案。首先,讓我們先來了解v-bind指令。 v-bind用於將V

jquery判斷元素是否有class的方法:1、透過「hasClass('classname')」方法判斷元素是否具有某個class;2、透過「is('.classname')」方法判斷元素是否具有某個class。
