2013-12-18 69 views
0

我不能完全似乎摸不着頭腦。傳遞函數到另一個函數(參數)

我有一個函數,其中filter需要一個參數是一個函數調用接受這個函數中內置的對象:

function bindSlider(time, filter) 
{ 

    var values = { 
    min : 8, 
    max : 9 
    }; 

    filter(values); 
} 

我現在不能確定如何調用bindSlider,我想那會是這樣的:

bindSlider(time, function(values) {/*do stuff here and accept values built in bind slider*/});

但這種失敗,出現錯誤:

ReferenceError: fliter is not defined


我知道我可以做

function filter(values) { 

} 

bindSlider(time, filter); 

,但我想以不同的方式爲每個呼叫聲明過濾器,一個function() {}型模式是我後。

+0

寫'var aa = filter(values);'不要調用沒有引用的方法 –

回答

1

從我測試,它的工作。我遇到的唯一問題是您的物品使用了=而不是:。 例子:

function bindSlider(time, filter) { 
    var values = { 
     min: 8, 
     max: 9 
    }; 
    filter(values); 
} 

bindSlider(10, function(values) { 
    var html; 
    for (var i in values) { 
     html = document.getElementById('test').innerHTML; 
     document.getElementById('test').innerHTML = html + '<br />' + values[i]; 
    } 
}); 

JSFiddle

+0

=而不是:實際上是剪切和粘貼問題。很高興知道我沒有在錯誤的樹上咆哮。生產中仍然存在問題。必須是我錯過的東西。 – Liam

0

如果這樣對象格式正確更新你的代碼,你可以擺脫錯誤的。噢,並確保你能正確地傳遞timebindSlider功能。

var values = { 
    min: 8, 
    max: 9 
}; 

所以:

function bindSlider(time, filter) { 

var values = { 
    min: 8, 
    max: 9 
}; 

filter(values); 

} 

bindSlider(1000, function (values) { 
    console.log(values); // { min: 8, max: 9 } 
}); 

Fiddle

相關問題