有人可以解释一下这个 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/