|
“使用function fname (){} ,会在任意作用域声明一个全局函数。”
这个好像这样说不妥吧,比如:
function f(){
function a(){
}
}
f();
alert(a);
很明显函数a的作用域仅限于函数f中。你用的那个function的例子我觉
得除了让新手感觉很费解之外没有什么特别的作用,因为一般的开发中
很少那样用。
在上一家公司做了一次小的培训,一般我喜欢基于问题来讲解,告、
诉大家哪些特性是用来处理哪些问题的。比如调用一个对象的方法即可
使用点也可以使用[],那么什么时候用[]呢,举个动态调用的例子就可
以了,这样大家就知道什么时候需要用点什么时候需要用[]。
看了下楼主写的培训我觉得一个很大的缺点就是没有告诉大家每一个
语法特性可以用来很方便的处理哪些问题。比如那个arguments,平实用
的最多的应该是用它来动态获取输入的参数个数,那么可以用这个有用的
特性来很方便的实现动态参数和模拟函数重载。这时候如果举个例子,比如:
function sum(){
var i, len, ret = 0, args = arguments;
for(i = 0, len = args.length; i < len; i++){
ret += args[i];
}
return ret;
}
alert(sum(5));
alert(sum(1, 2, 3, 4, 5));
那么新人就会比较容易接受的多。
JS的很多特性比较古怪,如果没有写出一个很好的例子来
告诉新人这个古怪的特性是用来做什么的,我觉得还不如
不告诉他,免得让他疑惑。JS包含的东西蛮多的,不可能
指望,一两次培训就学到所有的东西。少介绍一些特性,
就几个特性举几个开发中重用的例子更实惠些。
|
|