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