Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 如何在函数中作为参数返回值_Javascript - Fatal编程技术网

Javascript 如何在函数中作为参数返回值

Javascript 如何在函数中作为参数返回值,javascript,Javascript,今天我看到了navigator.geolocation.getCurrentPosition(函数(obj){console.log(obj)})code。在这段代码中,getCurrentPosition方法将Geopposition对象作为参数返回,前提是您在该方法中传递了函数。我想知道它是如何工作的。如果我有一个返回字符串的方法,并且我希望它像getCurrentPosition那样返回,那么我该如何实现它呢。比如说 var me={ fn:function(){ return "

今天我看到了
navigator.geolocation.getCurrentPosition(函数(obj){console.log(obj)})
code。在这段代码中,getCurrentPosition方法将Geopposition对象作为参数返回,前提是您在该方法中传递了函数。我想知道它是如何工作的。如果我有一个返回字符串的方法,并且我希望它像getCurrentPosition那样返回,那么我该如何实现它呢。比如说

var me={
fn:function(){    
return "getObj";    
}    
}

me.fn(function(obj){console.log(obj)})  should be print //"getObj"
您需要传递一个回调函数:

您需要传递一个回调函数:

在这段代码中,getCurrentPosition方法将Geopposition对象作为参数返回,前提是您在该方法中传递了函数

它不会将信息作为参数返回。它调用您提供的函数,并将信息作为参数(我们在JavaScript中使用“参数”一词,而不是参数)。函数是JavaScript中的一级对象,您可以将对它们的引用传递到函数中,并在函数中使用它们

因此,如果您有一个
foo
函数,并希望它调用一个带有结果的回调:

function foo(callback) {
    // ...come up with the result, then:
    callback(result);
}
这对于以下函数特别有用:A)重复调用回调函数(如
Array#sort
does),或B)异步调用回调函数(如
geolocation
does)

例如:

随机函数(最小、最大、回调){
回调(min+Math.floor(Math.random()*(max-min));
}
随机(1,10,函数(值){
log(“值为”+Value);
});

在这段代码中,getCurrentPosition方法将Geopposition对象作为参数返回,前提是您在该方法中传递了函数

它不会将信息作为参数返回。它调用您提供的函数,并将信息作为参数(我们在JavaScript中使用“参数”一词,而不是参数)。函数是JavaScript中的一级对象,您可以将对它们的引用传递到函数中,并在函数中使用它们

因此,如果您有一个
foo
函数,并希望它调用一个带有结果的回调:

function foo(callback) {
    // ...come up with the result, then:
    callback(result);
}
这对于以下函数特别有用:A)重复调用回调函数(如
Array#sort
does),或B)异步调用回调函数(如
geolocation
does)

例如:

随机函数(最小、最大、回调){
回调(min+Math.floor(Math.random()*(max-min));
}
随机(1,10,函数(值){
log(“值为”+Value);
});


您正在传入函数-可以将其作为参数吗?您正在传入函数-可以将其作为参数吗?是javascript中预定义的回调函数吗?@amit,不是。您可以将其命名为
foo
或任何您想要的名称,它只是参数名。尽管建议使用
if(typeof callback==“function”)
检查它是否实际上是一个函数。是javascript中预定义的回调函数吗?@amit,否。您可以将其命名为
foo
或任何您想要的名称,它只是参数名。尽管建议使用
if(typeof callback=='function')
检查它是否实际上是一个函数。