[bo]以下是引用 [un]sqrt2[/un] 在 2008-3-29 22:10 的发言:[/bo]
如果学过C++或者java
懂得javascript基本原理就行,关键在于各种类、函数的使用。这些查查基本手册就行。
所以,要专门学习的话5个小时就构了。其他的用的时候查手册或者google
或者到论坛来…… ...
看来你已经功成名就了,请教一个问题,能解释知道下面这个是怎么回事吗?
var klass = function() {
var prop = {
a:'a',
b:'b',
c:'c'
}
for (var p in prop) {
this[p]=function() {
alert(prop[p]);
}
}
}
var ins = new klass();
ins.a()
->>>输出c
ins.b()
->>>输出c
ins.c()
->>>输出c
为什么都是输出c???
期望的应该是分别输出a,b,c
另外,如果你觉得这个很小儿科,难不倒你,我这里还有很多没解决的疑问,想请教一二。
回归正题
任何语言都分为语言特性和语言技巧两部分
js语言特性对于学过c++和java的人来说,并不难,其中难的部分在于js特殊的prototype机制,以及可恶的函数作用域带来的闭包问题
对于语言技巧,js有许多精彩的精妙语法值得深究
再深入,既是对js底层实现机制的挖掘
js并不压于java等高级面向对象语言。有些书所谓的21天学会js,只能帮助你做些页面上的粗糙的效果。
我在这个论坛里,已经几次推荐想要入门js的,首先必须知道三点
1、ECMAScript是怎么回事
2、跨浏览器是怎么回事
3、js到底是不是小丑语言
js的作用和能力绝对不仅仅只是做个下拉菜单那么肤浅。如果有人自以为能写出一个下拉菜单,就兴奋的认为自己是js高手,那么大家拿起鸡蛋把他打下去吧。
另外,我个人有个观点,上论坛固然好,但是论坛不能帮助你学习,它只能帮助你解决问题。如果奢望通过论坛学习系统的知识,那是得不偿失的。
最后,还是推荐一本书《Javascript权威指南》(第五版),我每次都会强调,必须是第五版,至于为什么,大家去细看china-pub上第五版和第四版前言部分的介绍就可以知道了。