1
hadoop 2014 年 2 月 27 日
大松鼠你前后端通吃啊
|
2
sNullp OP 前端写着玩。
主要是每次写前端都要拜托朋友很麻烦。 其实我现在主要的任务是内核和存储相关的编程。。 |
3
jakwings 2014 年 2 月 27 日 var func; 和 function func() {} 都是语法糖,会自动在变量范围开头声明变量为 undefined 。
闭包中引用的外部变量随时可能会有变化。闭包会保存各种环境状态,不宜长期保留,也不宜深度嵌套,以防内存泄漏。 传递数据时要注意数据是否为 primitive 类型,否则是引用传递。 定义全局变量时记得用 var (要在全局作用域定义),不要未经声明直接使用变量。定义全局变量来分享数据没什么不好的,用个 Object 模拟命名空间就行。 var MyProject = {}; MyProject.func = ... |
4
sNullp OP @jakwings 感谢,所以闭包其实并非是分享数据的唯一选择?话说为什么 js 里如此流行闭包呢?是为了封装实现细节的话,用 prototype 不行吗?
|
5
jakwings 2014 年 2 月 27 日
@sNullp 用匿名函数传送数据貌似比较少见,一般用 {msg: ...} 之类的,也可以 {get: ..., set: ...} 。
用闭包来封闭细节相当于模拟 private 访问,用 prototype 和 this 做不到。 |