2015-04-02 56 views
1

JavaScript函数。当我在读的jQuery的一些代码,然后我发现这在他们的小部件调用不带括号

option: { 
     _page: this._getPage, 
     _panelInner: this._getPanelInner() 
    }, 
    _getPage : function(){ //code goes here that returns something..}, 
    _getPanelInner : function(){ //code goes here that returns something..} 

我想知道怎么被称为第一this._getPage功能,无需括号中的一个。如果可以像这样调用函数,那么为什么下一个函数_getPanelInner正在用括号调用。?

+3

它不被调用,而是传递函数的引用。 'var a = function(){}; var b = a;'<---这里2个变量指向相同的函数。 – zerkms 2015-04-02 08:34:01

+0

非常感谢。它完全解决了我的问题。 – 2015-04-02 08:37:01

回答

3

_panelInner将举行_getPanelInner函数返回价值,同时_page将举行参考_getPage函数。这意味着该功能将能够通过以下方式中的一种被称为:

  • option._page()
  • this._getPage()

这两个函数调用将执行相同的功能,但该功能不会自动调用(根据显示的代码)。

+0

“_getPanelInner函数的返回值”---这听起来不对。 – zerkms 2015-04-02 08:36:49

+1

我的意思是函数@zerkms的“返回值”。我不知道该怎么说... ... – Lix 2015-04-02 08:37:48

+0

我同意这并不容易,但它简明扼要: - ) – zerkms 2015-04-02 08:39:15

3

它不获取调用,它只是需要在这个函数的引用,以便以后你可以这样做:

option._page();