函数中变量的生存期是很重要的,FLASH中函数中变量的生存期和javascript中的是一样的。看个例子:
var myvar="i love";
function myfunction(){
var myFVar=myvar+" flash";
myvar="i love flashac";
return myFVar;
}
myOT=myfunction();
trace(myOT);
//output "l love flash";
trace(myFVar);
//output "undefined" 因为myFVar是个局部变量,在过程结束时,将释放该变量。
trace(myvar);
//output "i love flashac" 因为myvar 是个全局变量在过程是依然存在。
需要注意的是在过程中如果不用var声明变量,将会创造一个全局变量。看一个例子:
var myvar="l love";
function myfunction(){
name="amu";
myvar+=" flash";
}
myfunction();
trace(name);
//output "amu"; 因为声明name时没有用var FLASH将会创建一个name的全局变量。
trace(myvar);
//output "i love flash";
再看下面的例子:
var myvar = "l love";
function myfunction() {
var name = "amu";
var myvar = "flash";
}
trace(name);
//output "undefined"; 因为声明name时用var FLASH将会创建一个name的局部变量。
trace(myvar);
//output "l love"; 因为在过程内部虽然有和一个全局变更同名myvar但是用了var声明它将创建一个独立的局部变量。
此处在变量最好先声明再使用,要不然会得到一些意想不到的结果。
var myvar="i love";
function myfunction(){
var myFVar=myvar+" flash";
myvar="i love flashac";
return myFVar;
}
myOT=myfunction();
trace(myOT);
//output "l love flash";
trace(myFVar);
//output "undefined" 因为myFVar是个局部变量,在过程结束时,将释放该变量。
trace(myvar);
//output "i love flashac" 因为myvar 是个全局变量在过程是依然存在。
需要注意的是在过程中如果不用var声明变量,将会创造一个全局变量。看一个例子:
var myvar="l love";
function myfunction(){
name="amu";
myvar+=" flash";
}
myfunction();
trace(name);
//output "amu"; 因为声明name时没有用var FLASH将会创建一个name的全局变量。
trace(myvar);
//output "i love flash";
再看下面的例子:
var myvar = "l love";
function myfunction() {
var name = "amu";
var myvar = "flash";
}
trace(name);
//output "undefined"; 因为声明name时用var FLASH将会创建一个name的局部变量。
trace(myvar);
//output "l love"; 因为在过程内部虽然有和一个全局变更同名myvar但是用了var声明它将创建一个独立的局部变量。
此处在变量最好先声明再使用,要不然会得到一些意想不到的结果。
回复Comments
作者:
{commentrecontent}