2011-08-26 42 views
0

我在JavaScript中定義了這個函數,並且在Firefox和chrome中出現如'myobj is undefined'這樣的錯誤。我如何定義函數參數?我哪裏做錯了 ?我甚至不會打電話給我,我想知道爲什麼我得到一個錯誤。 JsLint沒有顯示任何錯誤。JavaScript函數給出的錯誤說

function makeBox (myobj) { 
    if(myobj.fullname.length > 18) { 
     myobj.fullname = myobj.fullname.slice(0 ,15); 
     myobj.fullname = myobj.fullname + '...'; 
    } 
    var box = templates.box.supplant(myobj); 
    return box; 
} 
+0

是什麼調用點樣子的? –

+3

你可以顯示你調用函數的地方嗎? –

+0

它適用於我(它不會說myobj是未定義的)。它說模板是未定義的,但這是因爲你沒有提供模板應該是。 – 0x499602D2

回答

1

當你調用makeBox,你必須用一個對象作爲參數裏面提供:

var anObject = { fullname: 'Someone with a name' } 

makeBox(anObject); 

否則,你的函數中myobjundefined

+0

我發現了錯誤。我從數據庫中得到了空值,導致了這樣的問題。 – Jaseem

0

此代碼是完全有效的提供了「模板」的定義是,你提供參數「MyObj中」作爲一個對象:

function makeBox(myobj) { 
    if (myobj.fullname.length > 18) { 
     myobj.fullname = myobj.fullname.slice(0, 15); 
     myobj.fullname = myobj.fullname + '...'; 
    } 
    var box = templates.box.supplant(myobj); 
    return box; 
} 
makeBox({ 
    fullname: "Jason Smith" 
});