码迷,mamicode.com
首页 > 其他好文 > 详细

node相关--代码共享与测试

时间:2014-11-29 18:44:18      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   ar   os   使用   sp   java   strong   

代码共享问题:

  • 是否值得在两个环境中运行同一份代码; //看项目
  • 依赖的API是否在两个环境中都有或有替代;
    • 浏览器提供的标准API:XMLHttpRequest、WebSocket、DOM、canvas等;
    • Node.js可加载的模块;

书写兼容的JS代码:

  • 导出模块://浏览器本身环境没有module全局变量;例子:
    • add.js: //在node和浏览器上都能运行;
      (function (module) {
      	module.exports = function (a, b) {
      		return a + b;
      	}
      	if (‘undefined‘ != typeof window) {
      		window.add = module.exports;
      	}
      })(‘undefined‘ == typeof module ? { module: { exports: {}}} : module);
  • 模拟实现ECMA API://一些主流浏览器中的特性在其他浏览器和JS引擎中都没有
    • 扩展原型:好处在添加填补之后几乎不用修改源代码;缺点在会破坏原型,影响其他使用者;例子
    • 工具函数:定义简单的函数,接收原型对象作为参数如果该对象上的函数已经实现,直接使用;否则实现一次;优点是没有隐患,缺点是会代码冗长;
      var keys = Object.keys || function(obj) {
       ..........
      }
  • 模拟实现Node API: node社区书写了可以在所有环境中运行的Node API;  EventEmitterassert
  • 模拟实现浏览器端 API:  现在已经模拟实现了包括XMLHttpRequestDOMWebSocketcanvas在内的多种node.js模块;

node相关--代码共享与测试

标签:blog   http   io   ar   os   使用   sp   java   strong   

原文地址:http://www.cnblogs.com/jinkspeng/p/4131664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!