gpt4 book ai didi

javascript - 命名函数在 JavaScript 中被低估了吗?

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:08 25 4
gpt4 key购买 nike

以jQuery框架为例,如果你运行这样的代码:

$(document).ready(function init() { foo.bar(); });

您在 Firebug 中获得的堆栈跟踪将如下所示:

init()
anonymous()
anonymous([function(), init(), function(), 4 more...], function(), Object name=args)
anonymous()
anonymous()

如您所见,它的可读性不是很好,因为您必须单击每个函数才能了解它是什么。匿名函数还会在探查器中显示为 (?)(),并且它们会导致“cannot access optimized closure”错误。在我看来,这些都是避免它们的充分理由。然后是 ECMAScript 5 将在其严格模式下弃用 arguments.callee,这意味着将无法使用它来引用匿名函数,从而使它们不太适合 future 。

另一方面,使用命名函数会导致重复,例如:

var Foo = {
bar: function bar() {}
}

function Foo() {}

Foo.prototype.bar = function bar() {}

鉴于命名函数提供的调试便利性,我认为这种重复是合理的,并且匿名函数在像 jQuery 这样的优秀框架中的流行是一种疏忽,我的想法是否正确?

最佳答案

我同意在 JavaScript/EMCAScript 中使用匿名方法有一些缺点。但是,不要忽视它们应该如何使用。对于要传递给另一个函数的简单的衬里,它们通常非常好。

关于javascript - 命名函数在 JavaScript 中被低估了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com