如何创建一个传递变量的函数,我稍后可以将该变量传递给该函数

时间:2015-03-01 12:24:38

标签: javascript function variables

类似的执行是在javascript addEventListener('event',function(e){}); 我试图理解的是,如何在“e”变量保存对象的情况下创建类似的结果。 到目前为止我有一些了解,这是对的吗?

var some = function (node, func) {
func(node);
}

并且节点是我尝试实现的变量

1 个答案:

答案 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;
&#13;
&#13;