Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带参数的函数值的JSON_Javascript_Json_Function - Fatal编程技术网

Javascript 带参数的函数值的JSON

Javascript 带参数的函数值的JSON,javascript,json,function,Javascript,Json,Function,我有一个很小的问题,但不知道如何解决它。 我需要发送一个带有函数的JSON,但是带有参数,这是我的问题 用JSON发送函数很简单: var jsonVariable = { var1 : 'value1', var2 : 'value2', func: function(){ alert('something'); } }; 我还需要别的东西,需要用参数传递func函数作为参数 例如: var jsonVariable = { var1 : 'value1', var2 : 'value2',

我有一个很小的问题,但不知道如何解决它。 我需要发送一个带有函数的JSON,但是带有参数,这是我的问题

用JSON发送函数很简单:

var jsonVariable = { var1 : 'value1', var2 : 'value2', func: function(){ alert('something'); } };
我还需要别的东西,需要用参数传递func函数作为参数

例如:

var jsonVariable = { var1 : 'value1', var2 : 'value2', func: funcParam(param1,param2) };
function(parameter1, parameter2){
     alert(parameter1 + parameter2);
}
但这不起作用:(


这方面的任何帮助都将非常有用

您想要什么还不清楚,但是如果您想要定义一个接受参数的函数,您将需要这样的东西

var jsonVariable = { var1 : 'value1', var2 : 'value2', func: function(param1, param2){ alert(param1 + param2); } };

您可以创建一个已关闭这些参数的函数:

var send_func = (function( param1, param2 ) {
    return function(){
        alert(param1 + param2);
    };
}( 3, 4 ));

var jsVariable = { var1 : 'value1', var2 : 'value2', func: send_func };
因此,调用上面的外部函数,接收参数,并返回一个调用时使用这些原始参数的函数

another_func( jsVariable );

function another_func( obj ) {

    obj.func();  // 7

}

当然,这与JSON无关。您将无法序列化函数的任何部分。

是否希望能够向函数传递任意数量的参数?如果是,请尝试向函数传递数组并进行迭代,例如:

var jsonVariable = {
    var1 : 'value1',
    var2 : 'value2',
    func: function(params){
        var alertString = "";
        for (var i = 0; i < params.length; i++)
            alertString+=params[i]+" ";
        alert(alertString);
    }
};

看看JSONfn插件

它正是你所需要的


-Vadim

这不是JSON。JSON没有函数的概念。它只是一个JavaScript对象。您必须更清楚地知道要发送什么、发送到哪里以及如何发送。
jsonVariable.func(["param1", "param2"]);