语法function(){name = function(){}在JavaScript中意味着什么?

时间:2010-10-26 20:16:12

标签: javascript syntax

我正在尝试理解以下代码块并且有点难过......特别是我对YAHOO.example.XHR_JSON =部分是什么感到困惑。看起来我们正在创建一个创建命名匿名方法的匿名方法?

YAHOO.util.Event.addListener(window, "load", function() {
    YAHOO.example.XHR_JSON = function() { (blah blah blah) };

如果我尝试将YAHOO.exmaple.XHR_JSON更改为类似FooBar的东西,我会被告知没有定义foobar。

任何帮助总是非常受欢迎..

5 个答案:

答案 0 :(得分:1)

XHR_JSON只是YAHOO.example对象的属性。您可以为此属性指定任何内容,包括函数。

如果您尝试了以下操作:

YAHOO.util.Event.addListener(window, "load", function() {
    YAHOO.example.XHR_JSON = 'foobar';
});

..然后YAHOO.example.XHR_JSON最终将被设置为'foobar',但只有在load事件被触发后才会被设置为undefined。这可能是您在检查值时获得{{1}}的原因。

答案 1 :(得分:0)

有两个匿名函数。第一个将YAHOO.example.XHR_JSON设置为第二个匿名函数的值。这与定义命名函数不同。它只是将变量设置为另一个函数的值。这是推迟执行的一种方式。也许第二个例子会有所帮助:

var lightFuse = function() { bomb.actionToTakeIn30Seconds = function() { beep(); explode(); } }

答案 2 :(得分:0)

这似乎是产生混淆的一线

YAHOO.example.XHR_JSON = function() { (blah blah blah) }; 

这是将一个函数对象分配给XHR_JSON上属性example上的属性YAHOO

它本可以分开如下

var v1 = YAHOO.example
v1.XHR_JSON = function() { ( blah blah blah) };

答案 3 :(得分:0)

听起来你只需要先定义FooBar ......? e.g。

var FooBar = function() { alert("Foo"); }
var OtherFunction = function() {
    this.myFunc = FooBar;
}
var instance = new OtherFunction();
instance.myFunc();

答案 4 :(得分:0)

var foo = funvtion(){... code ...};

几乎相同
function foo() { ... code... };

代码的主要思想是在触发页面的“load”事件并建立所有DOM元素之后完成XHR_JSON assignemnt。