国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苏尼特左旗| 沂源县| 澄城县| 马山县| 东阿县| 县级市| 延寿县| 南皮县| 称多县| 瑞金市| 桑日县| 蒙自县| 乌鲁木齐市| 保山市| 东台市| 曲水县| 扶绥县| 娄烦县| 高尔夫| 雅安市| 响水县| 来安县| 瑞金市| 石首市| 手游| 河源市| 宁城县| 黔江区| 于都县| 静安区| 武鸣县| 大兴区| 白城市| 德清县| 永寿县| 南阳市| 陵川县| 石首市| 栖霞市| 青川县| 宁德市|