一次在工作中遇到的问题,当时陷入了死胡同,许久以后才弄明白这个问题。不是方法变成字符串了,是没有正确的引用方法。
一、大家可以先猜测下下面两种情况的结果。
<script>
function example () {
return 1;
}
// 情形一:
alert(example);
// 情形二:
alert(example());
</script>
二、经过测试,你得到的结果应该是下面这样子的:
情形一:会将方法作为一个整体的字符串弹出
function example () {
return 1;
}
情形二:会弹出方法的返回值,这里是 : 1
1
三、原因分析:
情形一中直接弹出的是 example ,可以简单的把它看成是一个变量,这个变量指向方法的本身,而不是方法执行后的结果。
情形二中直接弹出的是 example() ,这是调用方法,结果返回的自然是方法的结果。
四、结论:
如果你需要返回方法的结果而不是方法本身,记得查看下你引用时是不是引用的方法变量(example)而不是直接调用方法(example())。