Javascript:同时分配函数和传递参数

Pra*_*tel 1 javascript

我有html按钮"classA","classB"和"classC",我将onclick处理函数分配给我,如下所示.

var classA = document.getElementById('classA');
classA.onclick = filterByClassA;

var classB = document.getElementById('classB');
classB.onclick = filterByClassB;

var classC = document.getElementById('classC');
classC.onclick = filterByClassC;
Run Code Online (Sandbox Code Playgroud)

这三个函数做同样的事情,唯一不同的是类.那么,我可以为这些按钮分配一个功能,每个按钮调用不同的参数.像下面的东西

var classA = document.getElementById('classA');
classA.onclick = filterByClass('classA');

var classB = document.getElementById('classB');
classB.onclick = filterByClass('classB');

var classC = document.getElementById('classC');
classC.onclick = filterByClass('classC');
Run Code Online (Sandbox Code Playgroud)

我知道这是一个函数调用而不是赋值,这是错误的,但有没有办法可以实现这一点,即同时分配函数和传递参数但不调用它?

Met*_*orm 6

function filterByClass(className)
{

    return function()
    {
        // Do something with className
        console.log(className);
    }
}
Run Code Online (Sandbox Code Playgroud)