在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ js創(chuàng)建類 function和class方式有什么不同嘛?

js創(chuàng)建類 function和class方式有什么不同嘛?

求解釋 因為我開始學(xué)的時候就是直接學(xué)的es6,一直都是用ES6的class方式,function沒怎么使用過。

回答
編輯回答
淚染裳

ES6 的class可以看作只是一個語法糖

//定義類
class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    return '(' + this.x + ', ' + this.y + ')';
  }
}

與下列方式等價

function Point(x, y) {
  this.x = x;
  this.y = y;
}

Point.prototype.toString = function () {
  return '(' + this.x + ', ' + this.y + ')';
};
2018年1月22日 13:33
編輯回答
厭遇

我說下個人理解吧,但我對 js 這塊不是很熟,也沒有看過相關(guān)書籍,只能說是個人的片面了解理解與積累。
js 中 class 和 function 其實并沒有區(qū)別,因為當(dāng)你在使用過程中,你會發(fā)現(xiàn),不管是你想定義一個 class 還是定義一個 function ,其實最終的使用都是一樣的。new 調(diào)用,因為 function 它既是一個方法也是一個對象,而 class 是一個對象,也是方法的結(jié)合體。function 內(nèi)部可以使用對象的特性,為它自身創(chuàng)建新的方法,新的屬性進(jìn)行調(diào)用。而 class 更不用說了。
個人覺得,如果非要區(qū)分,那應(yīng)該是封裝的合理性(方便維護(hù),方便使用),問題了。

2017年1月4日 18:50
編輯回答
野橘

早年JS沒有class語法,所以創(chuàng)建對象使用new (function)的方式來實現(xiàn)。
現(xiàn)在出了class、extends語法,就是幫助快速構(gòu)建一個對象,而不需要手動去指定各種prototype之類的東西。
可以認(rèn)為class是一個語法糖,因為他的功能不使用class關(guān)鍵字完全可以實現(xiàn)

2018年8月1日 13:42