资讯专栏INFORMATION COLUMN

总结:prototype.js,Mootools.js和klass.js 实现类的方法的异同与优劣

jeffrey_up / 2199人阅读

摘要:构建类的方法使用来构建类使用来构建类使用来构建类继承父类的方法使用子类方法构建子类,继承父类,在与父类同名的方法中,第一个参数为,方法体内使用来拓展父类的同名方法使用正常构建类后,第一个方法使用来继承父类,在子类的方法体中,使用来拓展父类的

构建类的方法

Prototype.js使用Class.create来构建类

Mootools.js使用new Class来构建类

klass.js使用klass来构建类

继承父类的方法

Prototype.js使用Class.create(ParentClassName,{//子类方法})构建子类,继承父类,在与父类同名的方法中,第一个参数为$super,方法体内使用$super(args)来拓展父类的同名方法

Mootools.js使用new Class正常构建类后,第一个方法使用Extends:ParentClassName来继承父类,在子类的方法体中,使用this.parent(args)来拓展父类的同名方法

klass.js使用ParentClassName.extend(//子类方法)来继承父类,在子类的方法体中使用this.supr(args)来拓展父类的同名方法

在类的外面给类添加函数,名称虽然不一样,但调用的方式都一样,

Prototype.jsaddMethods方法

Mootools.jsimplement方法

klass.jsmethodsimplement方法

单纯以构建类和继承类的方式,个人认为

Mootools.js做的最好,子类和父类的构建方式统一,子类继承父类时方法清晰,而且在具有面向对象特点的语言,都有extends关键字,而且父类也是在extends的后面

不习惯Prototype.js在每个需要拓展父类的同名方法的第一个参数中加$super,毕竟Mootools声明了父类后,在同名方法中只需要加this.parent(args),而不用在参数内再加上需要声明父类的强调

klass的构建子类的方法和其他两个都不一样,子类和父类的构建方式就直接加上父类的名字再加上extend就可以,拓展父类的同名方法的时候,使用this.supr(args)来拓展。相当想吐槽的就是supr这个名称了,klass的源码中到处充满了这种不好好命名的参数,以字母o,甚至是what来命名,真是特别的无语了,我会给作者提issue

关于源码中具体差异,待续

JS面向对象系列

《javascript高级程序设计》 继承实现方式

prototype.js 是如何实现JS的类以及类的相关属性和作用

Mootools.js 是如何实现类,以及类的相关属性和作用

klass 是如何实现JS的类以及类的相关属性和作用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84539.html

相关文章

  • klass 是如何实现JS类以及相关属性作用

    摘要:前面介绍了和是如何实现类,及其类的属性和作用的。今天介绍的就是单纯的实现面向对象的库,只有多行,也照例分析吧。 前面介绍了prototype.js和Mootools.js是如何实现类,及其类的属性和作用的。今天介绍的klass.js就是单纯的实现面向对象的库,只有90多行,也照例分析吧。 实现类的步骤 第一步是使用klass新建类,初始化的固定函数是initialize,不能使用其它...

    Kross 评论0 收藏0
  • Mootools.js 是如何实现类,以及相关属性作用

    摘要:实现类的步骤第一步是使用新建类,初始化的固定函数是,不能使用其它名称子类也是使用新建,父类在子类中,使用来继承,与子类的方法名,同一级别子类中与父类的同名方法,如果需要在父类的同名方法上拓展,需要在子类的同名方法内,使用如果需要在类的外面增 实现类的步骤 第一步是使用new Class新建类,初始化的固定函数是initialize,不能使用其它名称 子类也是使用new Class新建...

    gitmilk 评论0 收藏0
  • prototype.js 是如何实现JS类以及相关属性作用

    摘要:实现类的步骤第一步是使用新建类,初始化的固定函数是,不能使用其它名称子类也是使用新建,父类放在第一个参数中,如子类中与父类的同名方法,如果需要在父类的同名方法上拓展,在需要在第一个参数中使用,然后在方法体内使用如果需要在类的外面增加方法,可 实现类的步骤 第一步是使用Class.create新建类,初始化的固定函数是initialize,不能使用其它名称 子类也是使用Class.cr...

    Snailclimb 评论0 收藏0
  • 《javascript高级程序设计》 继承实现方式

    摘要:寄生式继承的思路与寄生构造函数和工厂模式类似,即创建一个仅用于封装继承过程的函数,该函数在内部已某种方式来增强对象,最后再像真的是它做了所有工作一样返回对象。 这篇本来应该是作为写JS 面向对象的前奏,只是作为《javascript高级程序设计》继承一章的笔记 原型链 code 实现 function SuperType() { this.colors = [red,blu...

    cppprimer 评论0 收藏0
  • Node.js 学习笔记_20170924(持续更新...)

    摘要:记录学习的点点滴滴,方便日后查看。笔记源于网老师安装官网下载安装官网下载与电脑配版本,说明一下是长期支持版本是当前最新版本。浏览器请求访问此地址会出现,第一个服务就完成了,是不是很简单。模块分类模块分为核心模块文件模块第三方模块。 记录学习 Node.js 的点点滴滴,方便日后查看。(笔记源于imooc网Scott老师) 1. 安装 Node.js官网:https://nodejs....

    魏宪会 评论0 收藏0

发表评论

0条评论

jeffrey_up

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<