假设我正在编写一个网络应用程序,并且我想在函数在多个位置声明后向函数添加某些行为,而不覆盖函数的旧行为。
这是一些简化的代码(注意window.onmousedown函数
var createMenu = function(){
var menu = document.createElement('ul');
/* add things to the menu */
window.onmousedown = function(e){
menu.style.background = "red";
}
}
var createSidebar = function(){
var sidebar = document.createElement('div');
/* add things to the sidebar */
window.onmousedown = function(e){
sidebar.id = "clicked";
}
}
var createMenu();
var createSidebar();
在这种情况下,window.onmousedown 不会做它本来应该做的两件事——它在 createSidebar 中的定义将覆盖它在 createMenu 中的定义。是否有一种标准的方法来实现一种行为,其中 windows.onmousedown 将保留这两种行为?