首页新闻找找看学习计划

命名空间问题

0
悬赏园豆:10 [已解决问题] 解决于 2015-10-27 18:03
<script>
var GL0BAL = {};
function getMax(arr) {
GL0BAL.arr1 = [1,2,3,4,6,2];
return Math.max.apply(null,arr);
}
console.log(getMax(GL0BAL.arr1));
</script>


结果为
-Infinity

一开始我以为将GL0BAL.arr1 = [1,2,3,4,6,2];放在getMax()中可以形象的表示他是在本函数中使用的。而且在外面也能访问到arr1。
直到运行的时候报错-Infinity。
才发现不能放在里面,放在外面就正确了。
所以大大们你们的任务来了,
为什么放在里面就报错-Infinity,这是什么错误。
牛屮的主页 牛屮 | 初学一级 | 园豆:93
提问于:2015-10-25 18:30
< >
分享
最佳答案
0

<script>
var GL0BAL = {};

GL0BAL.arr1 = [1,2,3,4,6,2]; // 这样不行?非要放在函数里面? 放在函数里面的话  当你执行getMax方法的时候,传入的参数 其实是undefined。


function getMax(arr) {

return Math.max.apply(null,arr);
}
console.log(getMax(GL0BAL.arr1));
</script>

 

收获园豆:3
NewBigGod | 初学一级 |园豆:182 | 2015-10-26 18:16

当时想的就有问题

牛屮 | 园豆:93 (初学一级) | 2015-10-27 18:03
其他回答(1)
0

你放到函数里面,渲染的时候,函数getMax是没有被执行的,console.log这个控制台打印才去调用,你这时候完成传了个null,都没初始化,当然运行的时候报错-Infinity

收获园豆:7
稳稳的河 | 园豆:4183 (老鸟四级) | 2015-10-26 10:30

这个错误不该犯,最基本的js知识。

支持(0) 反对(0) 牛屮 | 园豆:93 (初学一级) | 2015-10-27 18:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册