gpt4 book ai didi

javascript - window.bind() 使用 AngularJS 的类似功能

转载 作者:行者123 更新时间:2023-11-29 21:45:05 26 4
gpt4 key购买 nike

我想设置函数的上下文并将其作为回调传递。为此,我正在这样做。

myController.myService.validateToken(param)
.then( myController.myService.getToken.bind( myController.myService ) );

myController.myService.getToken.bind( myController.myService )

但我不确定这种做法是否正确?

Angular 是否提供与 bind() 类似的功能?

最佳答案

请引用angular.bind ,在 AngularJS 1.4.1(第 1146 行)中定义为:

function bind(self, fn) {
var curryArgs = arguments.length > 2 ? sliceArgs(arguments, 2) : [];
if (isFunction(fn) && !(fn instanceof RegExp)) {
return curryArgs.length
? function() {
return arguments.length
? fn.apply(self, concat(curryArgs, arguments, 0))
: fn.apply(self, curryArgs);
}
: function() {
return arguments.length
? fn.apply(self, arguments)
: fn.call(self);
};
} else {
// in IE, native methods are not functions so they cannot be bound (note: they don't need to be)
return fn;
}
}

所以用法应该是这样的:

var context, fn, args;
angular.bind(context, fn, args);

关于javascript - window.bind() 使用 AngularJS 的类似功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31510395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com