是关于最后的测试题中的一道题,想不明白了
题目代码如下:
function add(num1, num2){ if( arguments.length !== arguments.callee.length ){ throw new Error('asda'); } return num1 + num2; } document.write( add(1, 3) ); var fn = add; add = 1; document.write( fn(1,3) );
为什么最后返回的结果是:4,4;而不是“4,报错”呢?
我的理解是:将add赋值给fn,那么它们两者指向的是同一个对象,现在add被改变了,fn不是也应该随着改变了吗?
20
收起
正在回答
1回答
将add赋值给fn,那么它们两者指向的是同一个引用类型,add=1,只不过是add变量被重新赋值了,并没有改变原有的引用类型,所以结果是4,4。自己可以再想一想!或者是看一下这个链接:http://blog.csdn.net/why_222/article/details/75088239,
可能会对你有帮助哦!ヾ(◍°∇°◍)ノ゙
HTML5与CSS3实现动态网页 2018
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星