javascript - 不明白这个 JavaScript 函数语法

标签 javascript

有人可以解释一下这个 JavaScript 语法吗?

n: { } 是什么意思?

这是否意味着 AVSetFocus 返回一个 nobject(它已被赋予临时名称 n,由“字段”t、f 和 a 组成。t 是一个对象(看起来像),f 是该对象的函数t,a 是一个数组?

所以 AVSetFocus 返回一个对象、一个函数和一个数组。这个函数实际上调用了SetFocusToField吗?

这种风格叫什么?

有点困惑。

function AVSetFocus(d, b) {
    return {
        n: {
            t: FocusMgr,
            f: FocusMgr.SetFocusToField,
            a: [d, b]
        }
    }
}

刚刚还发现了这个:

var FocusMgr;

function FocusMgr_Init() {
    FocusMgr = new function () {
        this.mCurFocusID = 0;
        this.mCurFocusWindowID = 0;
        this.mCurFocusElement = null;
        this.mOpenedWindow = false;
        this.mFocusStk = [];
        //etc
    }
}

最佳答案

AvSetFocus() 函数返回此对象:

{
    n: {
        t: FocusMgr,
        f: FocusMgr.SetFocusToField,
        a: [d, b]
    }
}

该对象有一个属性,“n”,它本身引用另一个对象:

    {
        t: FocusMgr,
        f: FocusMgr.SetFocusToField,
        a: [d, b]
    }

...它又具有三个属性。 "t" 指的是(大概)另一个对象,"f" 指的是 "t" 所指的同一对象的方法,其中似乎有点多余,因为您可以通过 ""t 访问它,而 "a" 最终引用传递给 AvSetFocus() 的两个值的数组 作为参数。

"Does this function actually call SetFocusToField?"

不,没有。你可能会这样使用它:

var avsf = AvSetFocus(x, y);
avsf.n.f();  // calls FocusMgr.SetFocusToField()

或者你可以这样做:

AvSetFocus(x, y).n.f();

至于传递给 AvSetFocus() 的参数应该是什么,我不知道 - 从显示的代码中无法判断。

关于javascript - 不明白这个 JavaScript 函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15998708/

相关文章:

javascript - 获取变量的未定义索引

javascript - AngularJS - 链接后修改html元素

JavaScript 非法字符错误

JavaScript onclick : only works once

javascript - 字符串到填充字符的数组

javascript - 使用 JavaScript 从 URL 调用 colorbox

javascript - 在 Flatlist 项目中 react Native ref。仅返回最后一件商品

javascript - SystemJS 无法正确加载 RxJS

javascript - 请问这样创建对象有什么效果吗?

javascript - nextUntil hasClass jQuery