传递对象作为参数

时间:2014-09-18 16:44:37

标签: javascript jquery

我有以下代码:

$('.helloWorld').on('click', function() {
    $(this).css('background', 'black'); 
});

相反,我想做这样的事情(研究):

var params = [
    'click',
    function () {
        $(this).css('background', 'black');
    }
];

$('.helloWorld').on(params);

我收到的错误是" Uncaught SyntaxError:Unexpected token,。"

这可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:4)

您可以使用apply使用数组作为参数调用函数,但您需要指定thisArg

$.fn.on.apply( $('.helloWorld'), params );

答案 1 :(得分:3)

您在示例中使用的是数组。改为使用对象({}而不是[])这样的事情应该有效:

var params = {
    "event" : 'click',
    "callback" : function () {
        $(this).css('background', 'black');
    }
};

$('.helloWorld').on(params.event, params.callback);