美文网首页
ECMAScript之Class

ECMAScript之Class

作者: 锋叔 | 来源:发表于2018-07-09 19:28 被阅读0次

个人理解:Class就是一个构造函数通用模板

js中没有类这个概念一直是js引以为耻的事情,市场听到java和C++同事说:“还特么面向对象编程,连特么类是什么都不知道,搞笑。”……前端出身的纯前端人员只能脸红脖子粗,然后悻悻然(吐槽一下搜狗拼音输入法,居然打不出‘悻悻然’这个词!)离去!然而作者怎么会自甘落后,让自己的门徒不能类似拍黄片的屌丝仔们大喊“php是全世界最好的语言!”于是,Class应声而出,我们再也不用被嘲笑连类都没有了!大可以喊出“JavaScript是世界上最好的语言!”

什么是类,其实不管是java也好还是c++也好,通通定义不过一句总结,类是模板,对象是一个具象的实例。

// es5的构造函数
function obj(x,y){
  this.x = x;
  this.y = y;
}
obj.prototype.total = function(){
  return this.x+this.y
}

var newObj = new obj(125,125)

console.log(newObj.total())  // => 250

来来来,为啥结果是250呢,我来告诉你们吧!因为作者脑子有坑,且是个二百五。
ps: 关键点记住了,new和prototype。这我就不详细讲了,不懂的都是二百五。

Class实现上例构造函数

// Class
class obj1 {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
  total(){
    return this.x+this.y
  }
}


var newObj = new obj1(125,125)

console.log(newObj.total())  // => 250

用法和构造函数完全一致,只是更简单明了,没有了prototype而已。其实打印出来obj1的类型,还是一个函数!
ps:total方法不用函数命名,不用逗号隔开。

Class的继承

// extends
class obj1 {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
  total(){
    return this.x+this.y
  }
}
class extendsObj extends obj1 {
  constructor(x, y , name){
    super(x, y)
    this.name = name
  }
  total(){
    return this.name + super.total();
  }
}

var newObj = new extendsObj(125,125, '你是个')

console.log(newObj.total())  // => 你是个250

super就是被继承对象。

相关文章

  • ECMAScript之Class

    个人理解:Class就是一个构造函数通用模板 js中没有类这个概念一直是js引以为耻的事情,市场听到java和C+...

  • ECMAScript 6 - Class

    概述 JavaScript语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子。 上面这种写法跟传统的面...

  • [ECMAScript] Public Class Fields

    Public Class Fields是目前处于Stage 2的ECMAScript特性,用于便捷的为class声...

  • ECMAScript6 class

    继承 静态属性和方法

  • ES6语法总结

    摘要 阮一峰《 ECMAScript 6 入门 》 1. Class 1.1 class的定义 上面的代码首先用c...

  • ECMAScript 6 - Class的继承

    基本用法 Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多...

  • [ECMAScript] 当Public Class Field

    1. Babel Public Class Fields目前是TC39 Stage 2的特性。 在实际项目中,我们...

  • ES6-Class

    Class 的基本语法 ECMAScript 的原生构造函数大致有下面这些: Boolean() Number()...

  • 轻松学习 JavaScript——第 8 部分:JavaScri

    ECMAScript 6引入了class关键字以创建JavaScript中的类。现在,你可以使用class属性在J...

  • ES6改良ES5中的5大“缺陷”

    前言 ECMAScript 6 (ES6) 新特性可以分为: 新增语法(例如:class) 增强 JavaScri...

网友评论

      本文标题:ECMAScript之Class

      本文链接:https://www.haomeiwen.com/subject/gzxtpftx.html