1

请你告诉我为什么这行不通。

如果我打电话给 sA 为什么不显示警报。

var s = {

    A: function () { alert("test A"); },
    B: function () { alert("test B"); }

};


s.A;

谢谢

4

3 回答 3

8

尝试

s.A();

A是一个函数。如果你只是说s.A;你所做的只是发出对什么的引用A,例如,如果我s.A;进入 Chrome 的 javaScript 控制台,我会得到以下信息:铬截图

注意它是如何输出函数定义的?

现在,如果我说 `sA();' 我得到了你最初的预期——它触发了这个函数:

在此处输入图像描述

于 2012-07-10T07:06:40.730 回答
3

看到它在 jsfiddle 上工作。您必须添加大括号才能s.A使其成为函数调用。

s.A();
于 2012-07-10T07:07:41.013 回答
1

您正在返回对该函数的引用,但它没有被调用。为此,请在 之后添加大括号s.A

s.A();
于 2012-07-10T07:19:17.350 回答