getFeedbackThunk
是否纯净?
function setWinTitle(msg) {
window.document.title = msg;
}
function getFeedbackThunk(msg) {
return () => setWinTitle(msg);
}
voteButton.onclick = getFeedbackThunk('Thanks for voting!');
它不与外部状态交互,并且输出始终由输入确定。令人困惑的是,输出的目的是引起效果,但是我认为我们可以说函数本身是纯净的。
答案 0 :(得分:0)
在这个特定示例中,我同意你的看法。但是总的来说(即出于提示代码优化的目的)没有语法保证。在C ++中,有一些强制执行纯度的const方法:
// C++ code
class Feedback {
string state;
// here the const guarantees not to change the state
void getFeedbackThunk(string msg) const {
...
}
};
但是AFAIK在JS中没有这样的const用法。