rit*_*der 7 javascript typescript arrow-functions
我在应用程序中使用箭头函数,有时需要获取函数本身的引用.对于普通的javascript函数,我可以命名它们并使用内部的名称.对于箭头功能,我目前正在使用arguments.callee.有没有办法命名箭头函数,以便可以从内部使用引用?
示例代码
//typescript
private evaluateIf(expr: parserModule.IIfExpression, callback: IEnvCallback) {
this.evaluate(expr.condition, proceed=> {
guard(arguments.callee, arguments, this);
if (proceed !== false) this.evaluate(expr.then, callback);
else if (expr.else) this.evaluate(expr.else, callback);
else callback(false);
});
}
//javascript
Environment.prototype.evaluateIf = function (expr, callback) {
var _this = this;
this.evaluate(expr.condition, function (proceed) {
guard(arguments.callee, arguments, _this);
if (proceed !== false)
_this.evaluate(expr.then, callback);
else if (expr.else)
_this.evaluate(expr.else, callback);
else
callback(false);
});
};
Run Code Online (Sandbox Code Playgroud)
在协助之后我决定了什么,因为争论可能不会永远存在
private evaluateIf(expr: parserModule.IIfExpression, callback: IEnvCallback) {
var fn;
this.evaluate(expr.condition, fn = proceed=> {
guard(fn, [proceed], this);
if (proceed !== false) this.evaluate(expr.then, callback);
else if (expr.else) this.evaluate(expr.else, callback);
else callback(false);
});
}
Run Code Online (Sandbox Code Playgroud)
bas*_*rat 11
有没有办法命名箭头函数,以便可以从内部使用引用
除非您将其分配给变量.例如:
var foo = () => {
console.log(foo);
}
Run Code Online (Sandbox Code Playgroud)
对于箭头函数,我目前正在使用arguments.callee
arguments箭头函数不支持.TS目前错误地允许您使用它们.这将是下一版本的打字稿中的错误.这是为了使打字稿箭头功能与JS语言规范兼容.
对于您的用例,我只会使用一个 function
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |