======================================================
注:本文源代码点此下载
======================================================
评论
823828
2007-07-18 14:23
namespace的作用其实不应该是解决命名冲突,而应该是将合适的类型分类。
在不同的namespace下(而且是相同的application assembly)也应该尽可能的不要使用相同的类名。
回复 引用 查看
2007-07-18 16:30
@jeffrey zhao
我一看到javascript类库代码中的"namespace"超过一层就很不舒服,用js过分模拟c#的类库调用方式更是愚蠢至极,sigh
回复 引用 查看
#3楼[楼主]
2007-07-18 20:52
@jeffrey zhao
不能否认,解决命名冲突,分类都是名称空间的作用,具体哪个主要每个人看法不同。
我认为js这种解释语言(没有了编译时检测),命名冲突是首要的,否则定义的变量都属于globle,很容易就破坏了封装,模块也就很难复用。
分类只是为了便于管理,没有他js照样可以复用。definitive guid:
“
if you want to write a module of javascript code that can be used by any script and can be used with any other module, the most important rule you must follow is to avoid defining global variables. anytime you define a global variable, you run the risk of having that variable overwritten by another module or by the programmer who is using your module. the solution instead is to define all the methods and properties for your module inside a namespace that you create specifically for the module.
”
回复 引用 查看
#4楼[楼主]
2007-07-18 20:57
@birdshome
我也认为模型c#很愚蠢,js的灵活性都发挥不出来,也把初学js的人引入歧途,类似c#可能使初学好入门,对弄懂js没有意义。看microsoftajax.js,总能发现,他对js做的种种限制,都弄死了
回复 引用 查看
2007-07-18 23:12
@思无邪
你说的“我认为js这种解释语言(没有了编译时检测),命名冲突是首要的,否则定义的变量都属于globle,很容易就破坏了封装,模块也就很难复用。”,这一点难道例如c#的命名空间不是这个作用吗?你是从功能角度讲的,我是从设计角度讲的,也就是“如果要设计良好的类库,那么该如何使用命名空间”,我说的这一条也是.net framework设计时的准则之一。试想如果遇到了同名的类你是不是使用也比较难受呢?你用.net framework时遇到过多少同名的类呢?这是故意避免的,而不是巧合。不过真要说起来,可能我那句话加上“仅仅”两个字会更有说服力,呵呵。
回复 引用 查看
2007-07-18 23:13
@思无邪
这句话我不同意。我一直觉得用js模拟c#的编程模型只是给开发人员另一种选择,而javascript的灵活性没有消失。例如我在使用asp.net ajax时也经常不按照面向对象的扩展方式开发,呵呵。
回复 引用 查看
#7楼[楼主]
2007-07-18 23:25
@jeffrey zhao
我觉得你把类型分类作为namespce的作用,是在用
.net framework设计时的准则对待js,没有考虑到js的特殊性。
我也没有否认,用oo的观点设计js,ma也是这样做的。我只是说,理解js不能套用oo。
灵活性,我上面没有说清楚,消失不是指js的灵活性。
我js不行,加上ajax才看了一个月,只是我的理解
回复 引用 查看
#8楼[楼主]
2007-07-18 23:27
@jeffrey zhao
多交流,向你学习。ajax我是新手
回复 引用 查看
2007-07-19 00:57
@思无邪
这说得没错,asp.net ajax有些“过渡设计”,这个模型很大,导致了有时候从数据量到性能上都会有点问题。
// 多多交流。:)
回复 引用 查看
2007-07-19 07:18
这个东西其实很简单,不用讨论,组织方便即可,知道如何方便的找到需要的对象才是最关键的,yui也是这么做的
回复 引用 查看
#11楼[楼主]
2007-07-19 13:41
@布尔
简单引人而异,我第一次看ma的namespace实现花了近一天才搞懂,他是ma.js中最复杂的实现。原理简单,他的实现很绕
回复 引用 查看
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/