【问题标题】:Different ways of naming functions? [duplicate]命名函数的不同方式? [复制]
【发布时间】:2013-10-31 14:43:18
【问题描述】:

在Javascript中有什么区别:

var name = function() { //stuff to do };

{name : function() { //stuff to do } };

function name() { //stuff to do };

【问题讨论】:

标签: javascript function naming


【解决方案1】:

正如 Stoyan Stefanov 在"JavaScript Patterns" 中所写:

在函数声明和命名函数表达式中,名称 属性被定义。在匿名函数表达式中,它取决于 实施;它可以是未定义的 (IE) 或用 空字符串(Firefox、WebKit):

function foo() {} // declaration
var bar = function () {}; // expression
var baz = function baz() {}; // named expression

foo.name; // "foo"
bar.name; // ""
baz.name; // "baz"

name 属性在在 Firebug 或其他程序中调试代码时很有用 调试器。当调试器需要向您显示函数中的错误时, 它可以检查 name 属性的存在并将其用作 指标。 name 属性也用于调用相同的函数 从自身内部递归。如果你对这些不感兴趣 两种情况,然后一个未命名的函数表达式会更容易并且 不那么冗长。

反对函数声明的理由和首选的理由 函数表达式是表达式突出显示函数 是像所有其他对象一样的对象,而不是某种特殊的语言 构造。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-07
    • 2021-09-15
    • 2018-11-29
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 2013-10-06
    相关资源
    最近更新 更多