
prototypejs
文章平均质量分 91
aitangyong
成长最快、最好的方式就是交流和总结!
展开
-
学习prototypejs中的继承实现机制(一): Object.extend()、Class.create()、Class#addMethods()的使用
$super是不是和java中的继承有点像,我们居然可以使用$super来调用父类中的方法。不过有些差别:java中可以使用super调用父类中的任何公开的方法,但是在prototypejs里面$super只是一个方法,不是父对象。我们先研究下,prototypejs是如何做到$super,后面再看我们能不能改造它,让$super更像java中的super关键字。原创 2015-10-17 11:12:29 · 1850 阅读 · 0 评论 -
学习prototypejs中的继承实现机制(二):让$super更像java中的super关键字
我们先研究下prototypejs是如何做到$super,后面再看我们能不能改造它,让$super更像java中的super关键字。在OOP语言(如java)中,如果子类Child继承父类Base,那么编写某个子类方法的需求,无外乎下面几个:1.子类方法需要调用父类中的个同名方法(通过super关键字来调用)。2.子类方法需要调用父类中的不同名方法(通过super关键字来调用)。3.子类方法需要调用子类自身的其他方法(通过this关键字来调用)。4.子类方法需要调用多个父类和子类自身的方法。还有原创 2015-10-19 18:16:17 · 1505 阅读 · 0 评论 -
prototypejs库Function#wrap()的使用和源码解析
之前的2篇文章在讨论prototypejs库的继承实现方式、$super和_super过程中,我看到了Function#wrap()这个很有意思的API。这篇文章学习下如何使用Function#wrap(),以及它的源码。我们先看下官方对这个API的说明:也就是说wrap()可以用来实现类似AOP编程的效果。可以看到将wrap挂在Function.prototype上是最简单、最合理的,虽然修改原型有一定的风险。原创 2015-10-20 14:56:58 · 1171 阅读 · 0 评论