国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

ES6中class類用法實例淺析

2024-05-06 16:36:25
字體:
來源:轉載
供稿:網友

本文實例講述了ES6中class類用法。分享給大家供大家參考,具體如下:

類語法是ES6中新增的一個亮點特色。我們熟悉的JavaScript終于迎來了真正意義上的類。在之前,想要通過javascript來實現類,通常會采用如下構造函數的模式:

function Person(name,age,job){ this.name = name; this.age = age; this.job = job; this.friends = ['Shelby','Court'];}Person.prototype = { constructor:Person, sayName: function(){  document.write(this.name); }}

然后通過實例化調用:

var person1 = new Person('lf',23,'software engineer');person1.sayName();

下面看看使用ES6的類如何處理:

class Person { constructor(name, age, job) {  this.name = name;  this.age = age;  this.job = job;  this.friends = [‘Shelby','Court'] } sayName () {  document.write(this.name); }}

可以看到簡便了不少。

Class語法的推出可不光光是為了簡化噢,還有很多關鍵字。比如:

static關鍵字用來定義類的靜態方法,靜態方法是指那些不需要對類進行實例化,使用類名就可以直接訪問的方法。靜態方法經常用來作為工具函數:

class Point {  constructor(x, y) {    this.x = x;    this.y = y;  }  static distance(a, b) {    const dx = a.x - b.x;    const dy = a.y - b.y;    return Math.sqrt(dx*dx + dy*dy);  }}const p1 = new Point(5, 5);const p2 = new Point(10, 10);console.log(Point.distance(p1, p2));

但是需要注意的是,ES6中不能直接定義靜態成員變量,但是我們可以通過另外的方式來實現:

static get baseUrl() {  return 'www.baidu.com'}

在類語法推出之前,我們想要實現繼承,必須通過prototype來指定對象,而現在我們可以通過extends關鍵字來實現繼承

class Animal {  constructor(name) {  this.name = name; } speak() {  console.log(this.name + ' makes a noise.'); }}class Dog extends Animal { speak() {  console.log(this.name + ' barks.'); }}

但是需要注意的一點就是,繼承的原理還是在利用prototype這點沒有變,只不過extends裹了一層語法糖而已。

希望本文所述對大家ECMAScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大关县| 武宣县| 光泽县| 休宁县| 茌平县| 儋州市| 沧州市| 庄浪县| 方城县| 普洱| 东安县| 克拉玛依市| 襄汾县| 闽清县| 满城县| 福州市| 建德市| 高安市| 电白县| 安乡县| 宁国市| 富顺县| 焦作市| 黑山县| 紫阳县| 沭阳县| 蒙阴县| 泸西县| 阳原县| 夏河县| 通江县| 遵化市| 涟水县| 栾川县| 禹城市| 颍上县| 江陵县| 奉新县| 桂林市| 哈密市| 宜兴市|