类似的执行是在javascript addEventListener('event',function(e){}); 我试图理解的是,如何在“e”变量保存对象的情况下创建类似的结果。 到目前为止我有一些了解,这是对的吗?
var some = function (node, func) {
func(node);
}
并且节点是我尝试实现的变量
答案 0 :(得分:0)
e
变量是关键字event
的缩写。这被传递给通过addEventListener
作为最后一个参数调用的每个函数。 e
是一个事件对象,它包含对已触发事件类型和事件父级(以及许多其他特定于事件的属性)的引用。
但这不是你的问题。您询问是否可以将对象传递给函数:
var some = function (node, func) {
func(node);
}
简而言之。在您的示例中,函数some
有两个参数。第一个可以是一切:字符串,数字,函数,元素(节点)等。第二个参数需要是一个函数对象。因为您尝试在some
- 函数内调用。然后,将node
对象传递给该函数。
JavaScript中的所有内容都是一个对象。
工作示例:
some = function(node, func)
{
if (typeof(func) != undefined && {}.toString.call(func) === '[object Function]') //test if object exists and is a function.
{
return func.bind(node);
}
}
function alertIt(node)
{
alert(node.textContent);
}
//event setter
document.querySelector("button").addEventListener("click", some(document.querySelector("div"), alertIt), false);

<div>Hello world!</div>
<button>Click to activate</button>
&#13;