清单5.8包含以下代码:
<button id="test">Click me</button>
<script>
function bind(context, name) {
return function() {
return context[name].apply(context, arguments);
};
}
var button = {
clicked: false,
click: function () {
this.clicked = true;
}
};
var elem = document.getElementById('test');
var bound = bind(button, 'click');
elem.addEventListener('click', bound, false);
</script>
在检查Chrome调试器中的变量时,我意识到来自
的返回值return context[name].apply(context, arguments);
不存在。此外,修改button.click函数以便它返回一个以相同结果结束的值...在单击附加到button元素的事件处理程序后,没有任何东西可以使用该返回值完成。
所以我的问题是:上述行中的返回语句是否有任何原因?它有什么用处吗?
编辑: 如果示例不是事件处理程序,我可能不会问这个问题。我希望作者在示例中包含关于返回值可能用途的侧栏评论。