读书人

新手在函数里如何判断函数外的变量是否

发布时间: 2012-09-12 09:21:30 作者: rapoo

新手求助:在函数里怎么判断函数外的变量是否定义

JScript code
function outerfunc() {    var mvar = 1;    function innerFunc() {        if (mvar == undefined)            var mvar = 100;        console.log(mvar);    };    innerFunc();}outerfunc();


每次输出都是100啊。。我知道这是因为js解释器先解析再运行导致预定义了局部变量mvar,从而覆盖了外面的 mvar,但如何才能避免这种现象,正常地判断一个外部变量是否定义并在它未定义时准备一个初值呢?

目前我只想到把它改造成全局变量和改变变量名这两种折衷方法。
JScript code
function outerFunc() {    mvar = 1;    function innerFunc() {        if (mvar == undefined)            mvar = 100;        console.log(mvar);    };    innerFunc();}outerFunc();


JScript code
function outerfunc() {    var mvar = 1;    function innerFunc() {        if (mvar == undefined)            var _mvar = 100;        else            var _mvar = mvar;        console.log(_mvar);    };    innerFunc();}outerfunc();


但是仍想知道有没有不用折衷的方法呢?

[解决办法]
没明白你要表单什么。。


JScript code
function outerfunc() {    var mvar = 1;    function innerFunc() {        if (mvar == undefined)            var mvar = 100;//如果你是要操作outerfunc的私有变量mvar,不要使用var定义mvar,要不这个mvar是innerFunc的变量了        console.log(mvar);//这里也是innerFunc的变量mvar    };    innerFunc();}outerfunc();
[解决办法]
if (typeof mvar == "undefined")
mvar = 100;

读书人网 >JavaScript

热点推荐