如何将函数作为参数传递给匿名函数以作为变量

时间:2014-07-09 14:59:46

标签: javascript function parameters

我正在尝试调用一个函数,但是然后给它一些需要在另一个函数中使用的变量而不会污染全局命名空间。

这可行,但将这些变量声明为全局,我不想要。

$(document).on('click', '.News_Header_Holder', function () {
    postid = $(this).attr('data-postid');
    post_source = $(this).attr('data-source');
    $.feed_g();
});

我想要这样的东西,我只是不知道语法。

要调用的功能

$.feed_g = function () {
    $('.Loader_G').fadeIn(500);
    var data = {
        source: post_source,
        pid: postid,
    }
    $.ajax({
        type: "POST",
        complete: function () {
            $('.Loader_G').fadeOut(500);
        },
        data: data,
        url: "php/feed.php",
    }).done(function (f) {
        $('#Feed_G').html(f);
    });
}

调用上述功能的功能。

$(document).on('click', '.News_Header_Holder', function () {
    var postid = $(this).attr('data-postid');
    var post_source = $(this).attr('data-source');
    $.feed_g(post_source, postid);
});

感谢。

1 个答案:

答案 0 :(得分:1)

您需要在feed_g函数中声明参数。否则,该功能将不知道如何参考它收到的参数。

$.feed_g = function(post_source, postid){

这些参数名称不需要与传递给函数的名称相同。例如,考虑这个简化的例子

function frob(x, y){ console.log("Hello", x, y) }

frob("a", "b");

var q = 1;
var w = 2;
frob(q, w);

var x = 10;
var y = 20;
for(y, x);