这不是和使用函数一样吗onclick属性?因为最终你必须在两种方法中只对一个函数进行更改,无论是$('input').change(function () {/* ... change ... */}); or app.action = function () {/* ... change ... */}.
那么它实际上仍然被认为是一个好的做法吗?
这是一个非常广泛的话题,并且很大程度上基于意见。没有一个答案对一切。然而,这里有一些观察结果:
You are无论你做什么都会污染命名空间。app.validateDate污染命名空间就像validateDate确实如此,只是因为需要有一个全局可访问的函数名称。在复杂的现代网站中,有大量的脚本争夺全球名称。理想情况下,您永远不会在全局公开任何名称,甚至是命名空间名称。
.onclick = handler也不是很好。你想要:
document.getElementById('date').addEventListener('change', function () { .. });
This is 甚至不那么突兀并允许多个脚本将事件侦听器绑定到同一元素。同样,在复杂的现代场所中,您可以拥有的最高优先事项之一是确保没有人踩到别人的脚。你永远不知道还有谁可能对这个感兴趣change该元素在未来发生的事件。
It is与其他地方相比,内联编写的代码仍然更多。更长的 HTML 代码。 HTML 已经非常冗长了。任何你can搬到你应该搬到的地方。减少任何一个特定文件中的代码量本身就是一门艺术,并且对于可读性很重要。是的,它“只是又一个属性”......在所有其他属性和元素以及您也无法避免的内联声明之上。它只是堆积起来,这就是代码变得混乱、不可读和不可维护的原因。