2016-12-14 82 views
0

我想寫的JavaScript代碼都定義了一個輔助函數,一個字符串值,並用它來從返回的值代碼(對象是精確的) 不過,我想返回值僅僅是對象,而不是函數的定義,即我希望它只是執行的功能。 我不在乎,如果作爲一個副作用的功能也將在全球範圍內或類似的規定。寫一個JavaScript行定義一個函數,並返回一個基於函數的結果

例如我已經試過如下:

var a = (function xyz() {return 10; }, { "b": xyz() })
這將返回: VM209:1未捕獲的ReferenceError:XYZ是沒有定義的(...)

如果我使用 「;」相反,我得到如下:

未捕獲的SyntaxError:意外的標記;

我想它在Chrome控制檯上。如果有問題,請告訴我。

+1

變種A = {B:(()=> 10),()} – Gerrit0

+0

感謝@ Gerrit0,如果我想使用這個函數的定義是什麼我的對象中有多個地方? – Oren

+0

然後,您最好先定義函數,然後在實例化時調用它。所以,var xyz =()=> 10; VAR A = {B:XYZ()} – Gerrit0

回答

0

從你的描述,它聽起來就像你希望它返回一個對象:

{ 
    "b":10 
} 

在這種情況下,你想要做的是:

var a = (function xyz() {return {"b":10};})() 

如果你只是想要做的是什麼有a是返回值,那麼你想要的是:

var a = (function xyz() {return 10;})() 

無論哪種方式,語法是一樣的,返回值只是改變。你必須調用使用在其聲明的末尾功能()

+0

您的第一個假設是正確的,我期待得到{「b」:10 }回來,但我希望在代碼塊中具有可讀性,以便將函數邏輯與對象值中的用法分開。例如,我可以在對象中的多個位置使用日期diff實用程序函數。 – Oren

相關問題