您的位置:首页 > Web前端 > Node.js

关于node引入到项目中的交流对话

2016-03-08 09:45 483 查看

先搞清出一个概念,js闭包

闭包的定义:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

闭包就是嵌套在函数里面的内部函数,并且该内部函数可以访问外部函数中声明的所有局部变量、参数和其他内部函数。当该内部函数在外部函数外被调用,就生成了闭包。

1.js创建对象的几种方式

2.使用prototype定义的类,实例化出来的对象都共享同一个方法,一旦原型改变了,会影响全部对象。而一个对象修改了自身的方法,系统会执行copy on write,把对象指向新的方法而不会影响其他对象。

3.闭包的结果是每个对象都拥有独立的方法,即使对象之间的方法的实现一模一样。这样会造成多余的内存浪费。

4.在每个函数运行时,都有一个运行时对象称为Execution context,它包含如下variable object(VO,变量对象),scope chain(作用域链)和thisValue三部分

5.在动态执行环境中,数据实时地发生变化,为了保持这些非持久型变量的值,我们用闭包这种载体来存储这些动态数据。

今天和前端组长沟通了nodejs引入到项目中的成本,讨论过后,nodejs在用事件驱动、异步编程处理解决同步阻塞,以达到高并发的需求场景下是很有效的。同时,node实现的服务器端,可以和前端js共用同一套的页面模板,这样可以减轻java服务端动态页面开发的编译成本。node应专注于controller层的数据转发,减少cpu密集型的操作,善用高并发的特性。

node开发思路应该致力于减少node层的数据交互时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: