【发布时间】:2019-08-28 20:18:56
【问题描述】:
我正在学习装饰器,但我不明白一件事 - 在每个示例中,我都发现函数末尾有一个 return 语句。该 return 声明的目的是什么?在我看来,这是不必要的,它甚至不会返回任何东西。
console.log('Hello, ' + name);
}
function loggingDecorator(wrapped) {
return function() {
console.log('Starting');
const wrapper = wrapped.apply(this, arguments);
console.log('Finished');
return wrapper; // Why do I need this?
};
}
const wrapped = loggingDecorator(doSomething);
wrapped('Rita');
const test = wrapped('Rita');
console.log(test); // undefined
【问题讨论】:
-
啊,你的意思是那个“包装器”的
return;这在被调用函数返回值时很有用。这允许日志包装器为调用者提供与实际(包装的)函数返回的值相同的值。 -
我是这么认为的,但在有声望的教程和博客中一遍又一遍地看到这一点让我感到很奇怪。
标签: javascript function return decorator