我似乎无法弄清楚这一点。
我有一个函数,其中参数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
我知道可以做:
function filter(values) {
}
bindSlider(time, filter);
但是我想为每个调用声明不同的过滤器,因此我所追求的是function() {}
类型模式。
答案 0 :(得分: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];
}
});
答案 1 :(得分:0)
如果更新代码以使对象格式正确,则可能会消除错误。哦,确保你正确地将time
传递给bindSlider
函数。
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 }
});