試圖讓我的頭繞着對象,方法,閉包等...在Javascript中。將變量傳遞給對象方法javascript
看不出爲什麼這不起作用,我想我的思想存在一些根本性缺陷。我期待val變量傳遞給addNote()函數,但事實並非如此。我認爲任何在函數之外聲明的變量都可用於該函數,只要它們不在另一個函數內。這是不正確的?
if(typeof(Storage) !== "undefined") {
console.log(localStorage);
var $input = $('#input'),
$submit = $('#submit'),
$list = $('#list'),
val = $input.val();
var noteApp = {
addNote : function(val) {
var item = val.wrap('<li />');
item.appendTo($list);
clearField();
},
clearField : function() {
$input.val = '';
},
delNote : function(note) {
}
};
$submit.on('click', function(){
noteApp.addNote();
});
} else {
}
我試圖學習專業人員如何設法讓他們的代碼如此乾淨,簡潔和模塊化。我覺得一個音符應用程序將是一個完美的開始,可惜我被困在第一個障礙...
乾杯。
'addNote:功能(VAL) {...}' 你的'addNote'函數需要一個參數,並且你用none來調用它。您需要調用'noteApp.addNote(val);' –
您可以調用'addNote()',即形式參數val用undefined提供。如果'addNote'被聲明爲'function()',系統會嘗試通過外部作用域來解析出現在其體內的'val'。在你的情況下,它會訪問全局變量'val' – rplantiko