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

首頁 > 編程 > JavaScript > 正文

ES6中class類用法實例淺析

2019-11-19 16:54:47
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荣成市| 鄯善县| 平山县| 和静县| 开封县| 洛川县| 泰宁县| 河曲县| 乡宁县| 阜阳市| 长宁县| 南木林县| 佛山市| 扶风县| 红桥区| 东平县| 宁海县| 正安县| 新田县| 上犹县| 安义县| 连山| 平凉市| 商洛市| 庄浪县| 上饶市| 开江县| 藁城市| 射阳县| 个旧市| 新平| 绍兴市| 佛山市| 资中县| 且末县| 台东县| 瓮安县| 依兰县| 平安县| 福贡县| 吉林省|