0
之间有什么区别:命名函数的不同方式?
var name = function() { //stuff to do };
{name : function() { //stuff to do } };
function name() { //stuff to do };
之间有什么区别:命名函数的不同方式?
var name = function() { //stuff to do };
{name : function() { //stuff to do } };
function name() { //stuff to do };
正如"JavaScript Patterns"写的斯托扬斯特凡:
在函数的声明和命名的函数表达式中,名字 亲perty被定义。在匿名函数表达式中,它依赖于 的实现;它可能是未定义的(IE)或用 空字符串(火狐,WebKit的)中所定义:调试萤火虫代码或其它 调试器时
function foo() {} // declaration var bar = function() {}; // expression var baz = function baz() {}; // named expression foo.name; // "foo" bar.name; // "" baz.name; // "baz"
name属性是有用的。当调试器需要向您显示函数中的错误时,它可以检查是否存在name属性,并将其用作 指示器。 name属性也用于从其自身内部递归地调用相同的函数 。如果你对这两种情况不感兴趣,那么一个未命名的函数表达式将会更简单,并且不会变得冗长。
对函数的声明和喜欢 函数表达式的原因的情况是表达亮点,其功能 就像所有其他对象的对象,而不是一些特殊的语言 结构。
是'javascript'吗? – megawac
http://www.w3schools.com/js/js_functions.asp – Mike