摘要:
以前学习java的Spring框架时,这是个很强大的东西,用于实现调用者和被调用者之间的解耦。虽然在JS中也提供了call与apply动态改变调用者,但在复杂的UI组件中,这是远远不够了。前段时间也在无忧中看到一个类似的需求,说要“如何继承自己”,辞不达意,乱七八糟,但回贴都是精华,让我见识到AOP在JS的运用,逐研究了下这个东西。以下是我最初的实现,它取用的方式是在某个实例方法的前面或后面织入通知函数。 // pointcut: 织入点对象 ,target:被织入的对象 ,method:被织入的方法名字 ,advice: 通知函数 function Person(){ ... 阅读全文
摘要:
Array.prototype.max = function(){ return Math.max.apply({},this) } Array.prototype.min = function(){ return Math.min.apply({},this) } 阅读全文
摘要:
http://blog.bingo929.com/dojo-javascript-style-guide.html序Any violation to this guide is allowed if it enhances readability.所有的代码都要变成可供他人容易阅读的。快读参考核心 API 请使用下面的风格:结构规则注释模块小写不要使用多重语义(Never multiple words)类骆驼公有方法混合其他的外部调用也可以使用 lower_case(),这样的风格公有变量混合常量骆驼 或 大写下面的虽然不是必要的,但建议使用:结构规则私有方法混合,例子:_mixedCase私 阅读全文
摘要:
传入两个Date类型的日期,求出它们相隔多少天。var getDatePeriod = function(start,finish){ return Math.abs(start*1-finish*1)/60/60/1000/24; }传入一个Date类型的日期,求出它所在月的第一天。var getFirstDateInMonth= function(date){ return new Date(date.getFullYear(),date.getMonth(),1); }传入一个Date类型的日期,求出它所在月的最后一天。var getLastDateInMonth= function(d 阅读全文
摘要:
从javaeye看到一贴,探讨如何实现计时器,集思广益,最后竟然提出了十多种的实现。这再次证明了JS的写法很灵活(举个反面的例子,如Python,其哲学原则是onewaytogo!)。这里整理一下,研究一下各种实现的性能问题。现在JS越来越向富客户端发展,UI组件乃至网页游戏,对性能问题是相当重视的。实现1functionTimer(id){this.id=id;this.begin=function(count){this.show(this.id,count)();setInterval(this.show(this.id,count-1),1000);}this.show=functio 阅读全文