Redky

web前端开发/HTML/CSS/JavaScript

更新 core 层.

without comments

之前谈过, 模块化开发, Core – Sandbox – Module
Core -> 注册/注销机制 + 消息通讯机制.
Sandbox -> 对 Module 提供 api.
Module -> 匿名函数进行独立开发.

  • 支持先触发, 后注册.[?支持性弱]
    update: 2012-01-01 10: 20.
    当触发事件时, 如果不存在此事件绑定, 则做记录;
    当事件绑定时, 去扫描记录, 如果存在记录, 就执行处理函数, 但记录保留, 以备同时注册的同名事件使用;
    当再触发已记录事件(b)时, 此时已绑定事件, 则直接执行处理函数. 此后, 再绑定同名事件时, (b) 处理函数不再执行.

    update: 2012-01-01 11: 22.
    换个角度思考, [ps: 当前解决的问题, 它本身是用来解决什么问题的, 求的是最终问题的解决方案]. 消息通讯机制, 是为了通知各个模块界面状态 – [起始页项目如此]; 而界面状态最终肯定只有一个, 即要么a, 要么b, 不能同时a/b; 那么先触发后注册问题, 也就是记录最后状态问题; 即把最后一种 type, arguments 记录下即可.
    (ps: 这个问题值得再思考]

  • 支持延迟加载 JavaScript 文件 [很少用户会使用的功能, 可延迟加载]
    目前仅支持单个脚本.
  • 扩展 notify 参数格式支持.
    原 notify 时, 参数格式仅支持 单个参数 或 json 格式. 更新后的, 支持任意格式, 可以多个参数.

    api.notify('event-name', 'test');
    api.notify('event-name', 'a', 'b', 'c');
    api.notify('event-name', {a: 'a', b: 'b'}); // 本质是一个参数.

1月份花时间会对 sandbox 层, 进行整理, 然后在不同项目中, 使用统一扩展. [即共用扩展]

2012 年, 有很多事情要做…….

  • 花一定时间陪小石头, 陪她一起成长.
  • 锻炼身体. 保证良好的身体才能陪小石头, 才能正常工作. 各种户外, 组内活动.
  • 坚持参加交流会. 了解行业基本动向. 开拓下视野. 和朋友见见面, 聊聊天, 吃饭.
  • 部门内做分享. 自己理清思路, 大家指点, 提建议. 和其它部门合作, 了解设计模式/数据结构/算法.
  • 尝试在项目中使用 html5 (css3/JavaScript api);
  • 提高海外组生产力. 各种节省时间工具, 充分利用现有环境.

Written by jim

一月 1st, 2012 at 1:07 上午

Posted in JavaScript

Tagged with

写在 2011

without comments

2011年 还有 6个小时就过去了~

  • 2011年, 小石头出生. 现在11月大, 会走路了.
  • 2011年, 给火车站贡献了很多, 回了n次家.
  • 2011年, 对前端技术有个更进一步的认识, 谢谢 w3ctech 交流会, webrebuild, 谢谢同事和朋友 g3g4, ck, leilei, 超人的哥哥, 胖子, 四姐, 法师, 宇宙…
  • 2011年, 在部门做了几次分享, 收获了很多. 特别是了解到很多好想法. 收了很多好建议, 并且合适/合理的都已经应用到项目中:)
  • 2011年, 看到好些书, 什么 JavaScript, css, html5, ppt, 插画, 程序开发理论, 敏捷开发. 还有悟空传[ps: 被同事说, 不是我这个年龄看的], 考拉小巫英语, 黑客与画家…
  • 2011年, 结识几个死党. @狮子, @离谱, @usual.
  • 2011年, 同事们教会我玩三国杀, 尽管自己经常杀自己人. 不过大家都很 High.
  • 2011年, 参加了大大小小的户外活动. 海陀, 香山, 八大处… 很多很多…. [ps: 程序员更应该锻炼身体. - 自己算程序员吧, 也是写代码的].
  • 2011年, 入手了 mac air. 正在试用阶段. Android系统手机. 入门卡片相机. 跳舞毯. 乐高积木.
  • 2011年, 开始玩微博, 听豆瓣fm.
  • 2011年, 看了N部电影.(龙门飞甲, 十三钗, 速度与激情5, 加勒比海盗, 哈利波特, 全球热恋, 盗梦空间, 阿甘正传[第几次], 窃听风云2, 敢死队…)
  • 2011年, 在水群水的最多的一次. 不过也学习到很多东西.

2012 来吧~

Written by jim

十二月 31st, 2011 at 6:20 下午

Posted in 体会生活

Tagged with

curry JavaScript

without comments

JavaScript 函数值得去挖掘. 今天用到下面:

function proxy(a) {    
    return function (b) {
        return a + b;
    }    
}
var test = proxy(5);
var result = test(6);
console.log(result);

使用一函数生成一函数, 此函数把参数当作固定值[此参数也是通过变量传递来的]在生成的函数中使用.
后来找到相关资源, 原来叫 JavaScript Curry 化.
@update 2012-01-01 09: 33

// from 《JavaScript Patterns》
function schonfinkelize(fn) {
    var slice = Array.prototype.slice,
        stored_args = slice.call(arguments, 1);
    return function () {
        var new_argus = slice.call(arguments),
            argus = stored_args.concat(new_argus);
        return fn.apply(null, argus);
    };
}

@update: 2012-01-03.
jQuery 中的 proxy 使用此方法.
JavaScript api 中有新的 bind 方法.

if (!Function.prototype.bind) {  
  Function.prototype.bind = function (oThis) {  
    if (typeof this !== "function") {  
      // closest thing possible to the ECMAScript 5 internal IsCallable function  
      throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");  
    }  
 
    var aArgs = Array.prototype.slice.call(arguments, 1),   
        fToBind = this,   
        fNOP = function () {},  
        fBound = function () {  
          return fToBind.apply(this instanceof fNOP  
                                 ? this  
                                 : oThis || window,  
                               aArgs.concat(Array.prototype.slice.call(arguments)));  
        };  
 
    fNOP.prototype = this.prototype;  
    fBound.prototype = new fNOP();  
 
    return fBound;  
  };  
}

资源:

Written by jim

十二月 31st, 2011 at 1:05 下午

Posted in JavaScript

Tagged with ,

《孩子》

without comments

Written by jim

十二月 31st, 2011 at 9:20 上午

Posted in 体会生活

Tagged with

❤傲游许愿墙❤

with 2 comments

Written by jim

十二月 28th, 2011 at 9:19 上午

Posted in 体会生活

Tagged with