欢迎来到天天文库
浏览记录
ID:31726292
大小:535.43 KB
页数:5页
时间:2019-01-17
《flashactionscript30关于作用域的详细讲解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关于作用域的详细讲解接下来我们来讲一下作用域的问题,作用域在英文里面叫scopeo那它呢本身是指变量和函数能够被访问和调用的范围。作用域一般是由代码所在的位置决定的,决定了它可以被执行的范围。实际上很多初学者対作用域不是很了解,很容易在作用域外去访问或者调用函数,这样做的结果通常就是找不到要访问的变量,或提示函数未定义。我们来看一个比较明显的例子。注意在这个代码段当屮呢,我首先定义了一个functionAo这个A呢,在具体实现当中是定义一个小写a的Number类型的一个变量,并且为它赋值100。我在执行当中呢,我首先执行了一下A,然后trace(a);追踪一下
2、。大家注意,访问的属性a未定义。这是为什么呢?这是因为a存在的作用域是在函数当中的,也就是在A当中的。如果我在A之外去访问它,本身是超出它的作用域的,那这个时候是无法访问到a变量的。4补间:[无—A►►
3、5性XI聞融I标签类型:3T名称口//⑨$/夕孝Q/Bb没祠迭择声音如果我们在域内访问它。我们trace(a);^到A函数里边去,它本身就进入到了函数A的作用域当中了。这个时候能不能访问到它呢?大家注意,这个时候输出面板里已经输出100,这吋候呢实际上是可以访问到a的。如果我就希望在函数作用域Z外来访问到a,我应该怎么做呢?我应该把a变暈的声明放在函数作用域
4、之外,也就是放在一个更高的作用域里面。比如说,我先声明a是一个Number类型的变量,然后再在A屮对a进行赋值。这个吋候,函数A里面的a已经是在函数外声明了的。然后,我们在函数外面trace(a);来追踪一下。大家可以发现,输出面板同样输出了100o那大家也就都清楚了,为什么我们一般在类包当中要提前先声明变量。我先声明变量时为了它的作用域能够影响到其它所有的方法。如果我在某个函数内部声明了变量,它所在的作用域就在这个函数当屮。我们做一个比较形象的例子。大家可以看到,下面是一个标准的类包。package下面是一级权限,class下而是二级权限,如果它有一个fun
5、ction那就是三级权限‘function内部再嵌套一个新的函数它就是四级权限。一级、二级、三级、四级,它的作用范围是从大到小的,大家一定要引起足够的注意。
此文档下载收益归作者所有