如何解决函数参考-请赐教!
| 谁能解释为什么下面两个不相等?我基本上是想弄清楚幕后发生的事情。我的理解是,它们都引用相同的功能,但事实并非如此。var foo = function bar() {}
typeof foo //\"function\"
typeof bar //\"function\"
foo === bar //false
foo == bar //false
解决方法
我不认识您,但我的浏览器以ѭ2return1的价格返回
typeof bar //\"undefined\"
演示http://jsfiddle.net/gaby/t8Czr/
该方法的“ 4”引用仅在方法本身内部可用。
, 条未定义。 Bar仅存在于foo的范围内。
如果要先声明bar,然后将foo设置为bar,则结果将与预期的一样。
, 这是一个命名函数表达式,因为已分配给foo
。在命名函数表达式中,函数的名称仅在函数本身的封闭范围内可用,而在外部不可用。
在外面,它只是不确定的。
var foo = function bar() { typeof bar; /* function */ };
bar; // undefined
如果没有到foo
的赋值,那将是一个函数声明,并且标识符bar
在整个封闭范围内都可用,甚至在声明函数之前也是如此。
typeof bar; // function
function bar() {}
这是一篇很好的文章,旨在了解命名函数表达式的工作方式以及它们与函数声明的区别。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。