Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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_Angularjs_Underscore.js_Higher Order Functions - Fatal编程技术网

Javascript 高阶函数名

Javascript 高阶函数名,javascript,angularjs,underscore.js,higher-order-functions,Javascript,Angularjs,Underscore.js,Higher Order Functions,我刚刚为answer编写了这个函数,所以: 函数ngWrap($scope,fn){ 返回函数(){ var args=[].slice.call(参数); 返回$scope.$apply(函数(){ fn.apply(null,args); }); }; } 使用更好的版本: 函数ngWrap($scope,fn){ 返回函数(){ var args=[].slice.call(参数); 如果($scope.$$phase){ fn.apply(null,args); }否则{ 返回$sco

我刚刚为answer编写了这个函数,所以:

函数ngWrap($scope,fn){
返回函数(){
var args=[].slice.call(参数);
返回$scope.$apply(函数(){
fn.apply(null,args);
});
};
}
使用更好的版本:

函数ngWrap($scope,fn){
返回函数(){
var args=[].slice.call(参数);
如果($scope.$$phase){
fn.apply(null,args);
}否则{
返回$scope.$apply(函数(){
fn.apply(null,args);
});
}
};
}
可用于缩短此时间的:

socket.on('myevent',function(arg){$scope.$apply(function(){trigger_fn(arg)})
进入:

socket.on('myevent',ngWrap($scope,trigger_fn));
这个函数有名字(第一个)吗?或者您可以使用下划线编写它的简单版本(可以使用
$scope.$apply.bind($scope)
作为参数),或者lisp有这样的函数

这个函数有名字吗

我不知道,但我可以想到“将
fn
提升到角度
$scope
”左右

您可以使用下划线编写它的简单版本

是的,您在那里做的是基本的函数组合,因此您可以使用下划线:

function ngWrap($scope, fn) {
    return _.compose($scope.$apply.bind($scope), fn);
}