gpt4 book ai didi

javascript - 为什么 MS Ajax 在创建对象方法时使用命名 JS 函数?

转载 作者:行者123 更新时间:2023-12-02 20:41:14 26 4
gpt4 key购买 nike

查看 MS Ajax 库,我注意到它们定义的对象方法如下所示:

    addErrors: function Sys_Mvc_FormContext$addErrors(messages) {
/// <param name="messages" type="Array" elementType="String">
/// </param>
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
Array.addRange(this._errors, messages);
this._onErrorCountChanged();
}

为什么使用命名函数(Sys_Mvc_FormContext$addErrors(messages))?为什么不直接使用:

addErrors: function(messages) {

我认为我在 MS Ajax 之外没有见过这种情况...

最佳答案

命名函数表达式对于调试目的特别有用,因此您可以在调用堆栈中看到您所在的位置以及所有实际的函数名称。

对于递归也很有用,因为函数表达式的标识符仅在其函数体内可用。

请注意,有一个 bug关于 JScript 实现,其中函数表达式的标识符泄漏到其封闭范围,希望有一天这会得到修复...

推荐文章:

关于javascript - 为什么 MS Ajax 在创建对象方法时使用命名 JS 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337657/

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