Javascript 如何将其与高阶函数绑定
我在某个文件中有这个高阶函数 withTry.js 具有tryFunc的函数{ 返回函数…args{ 试一试{ func…args; } 捕捉错误{ console.log`ERROR:${ERROR}` } } } 我试图在另一个类似这样的文件中调用它 foo.js const withTry=需要“路径”; 函数类{ 这个.m=null; 这个。s=0; } /*我正在使用withTry类原型*/ someClass.prototype.func=带有TryFunctionData{ /* 问题就在这里 这个值是全局的,这是有意义的,因为它指的是withTry HOF的全局 */ console.logthis.s/*未定义*/ }; 我的问题是如何绑定someClass的this如果您不想绑定它,您想通过以下方式传递动态this值:Javascript 如何将其与高阶函数绑定,javascript,class,this,bind,higher-order-functions,Javascript,Class,This,Bind,Higher Order Functions,我在某个文件中有这个高阶函数 withTry.js 具有tryFunc的函数{ 返回函数…args{ 试一试{ func…args; } 捕捉错误{ console.log`ERROR:${ERROR}` } } } 我试图在另一个类似这样的文件中调用它 foo.js const withTry=需要“路径”; 函数类{ 这个.m=null; 这个。s=0; } /*我正在使用withTry类原型*/ someClass.prototype.func=带有TryFunctionData{ /*
function withTry(func) {
return function(...args) {
try {
func.call(this, ...args);
// ^^^^^^^^^^^
} catch(error){
console.log(`ERROR: ${error}`)
}
}
}
作为替代,您还可以使用
接下来要添加的是一个返回语句,用于将返回值传递回:-如果不想绑定它,则需要通过以下方式传递此值的动态值:
function withTry(func) {
return function(...args) {
try {
func.call(this, ...args);
// ^^^^^^^^^^^
} catch(error){
console.log(`ERROR: ${error}`)
}
}
}
作为替代,您还可以使用
接下来要添加的是一个返回语句,用于返回返回值:-我的答案与Bergi的基本相同: 具有tryFunc的函数{ 返回函数…args{ 试一试{ //func…args; func.applythis,args } 捕捉错误{ console.log`ERROR:${ERROR}` } } } 函数类{ 这个.m=null; 这个s=2; } someClass.prototype.func=带有TryFunctionData{ console.logthis.s; }; var x=新的someClass;
x、 func 我的答案与Bergi的基本相同: 具有tryFunc的函数{ 返回函数…args{ 试一试{ //func…args; func.applythis,args } 捕捉错误{ console.log`ERROR:${ERROR}` } } } 函数类{ 这个.m=null; 这个s=2; } someClass.prototype.func=带有TryFunctionData{ console.logthis.s; }; var x=新的someClass; x、 func;我假设你以某种方式调用func,你能补充一下这个问题吗?我假设你以某种方式调用func,你能补充一下这个问题吗?