问题描述
- javascript 函数声明在if语句里面
-
var x = 1; if(function f(){},x=f){ } console.log(x);
为什么在执行if语句的时候,会报f is not defined的错误.
解决方案
[觉得对弱类型语言还钻了下牛角尖]
条件判断里不应该进行有作用域的定义,
发现只能定义全局变量
if(i=3,x=i) //good
if(var i=3,x=i) //bad
你的例子,我给你改一下就正确了,只是发现一点规律,具体原因,我不确定
var x = 1;
if(gF = function f(){return 3;},x=gF){ }
console.log(x());//3
more:
if(window.test = function useless(){return 3;},x=window.test())//good
{
console.log(test());//3
//console.log(useless());//bad
}
解决方案二:
你直接用x=f,但是你f都没有定义啊
时间: 2024-10-31 22:10:46