javascript - 在另一个函数中获取函数参数

标签 javascript

我听说可以做这样的事情

this[func].apply(this, Array.prototype.slice.call(arguments, 1));

但是要访问 arguments 对象,我需要位于该函数内部。

那么,例如,如果我在函数 function1 中运行代码,有没有办法获取不同函数 function2 的参数?

整个问题是我想向任何给定元素添加事件。但该元素可能已经附加了另一个事件。因此,例如,如果我将“onclick”事件附加到某个元素,我将执行以下操作:

var event = 'onclick';
if(typeof currentElement[event] === 'function'){
    cf = currentElement[event];
    f = function(){
        cf();
        func();
    }
}else f = func;

currentElement[event] = f;

现在,新函数和前一个函数这两个函数都被调用。问题在于,此方法传递给前一个函数的参数丢失了。

有谁知道当我们像我的示例中那样动态调用函数时是否可以不丢失参数?

OBS:jQuery 不是一个选项:/

最佳答案

听起来像使用addEventListener会更适合你。它允许您将多个监听器(函数)附加到单个元素:

elem.addEventListener("click", function() {
  console.log("click listener 1");
});

elem.addEventListener("click", function() {
  console.log("click listener 2");
});

请注意,根据 MDN,IE >= 9 支持 addEventListener

如果您确实想继续当前的道路,您可以这样做:

f = function(){
    cf.apply(this, arguments);
    func.apply(this, arguments);
}

关于javascript - 在另一个函数中获取函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557172/

相关文章:

javascript - 带有传单问题的交互式 Choropleth map

javascript - 对字符串进行编码以便通过 HTTP 请求发送?

javascript - 选择不是链接的列表项

javascript - 如何在 Vue 中取消选择可拖动的 svg 元素?

javascript - 为什么导航颜色不变

javascript - 在 Html 中单击列表 (li) 项目不适用于 jquery

Javascript:通过名称访问闭包中的局部变量或变量

javascript - 循环计算可放置区域中的项目

javascript - 查询修饰符中出现意外标记 ":"

javascript - 创建网格,其中所有其他(字符串)元素均为空