请告诉我为什么这不起作用。
如果我打电话给s.A,为什么警报不会显示。
var s = {
A: function () { alert("test A"); },
B: function () { alert("test B"); }
};
s.A;
感谢
答案 0 :(得分:8)
尝试
s.A();
A
是一个功能。如果您只是说s.A;
,您所做的就是发出A
所指的内容,例如如果我将s.A;
打入Chrome的javaScript控制台,我会收到以下信息:
注意它所做的一切是输出函数定义吗?
现在,如果我说's.A();'我得到了你原先的预期 - 它激发了这个功能:
答案 1 :(得分:3)
see it working on jsfiddle。你必须在s.A
添加大括号才能使它成为函数调用。
s.A();
答案 2 :(得分:1)
您正在返回对该函数的引用,但它未被调用。为此,请在s.A
之后添加大括号:
s.A();