上个月我一直在自学 JavaScript,因为我的工作一直很忙,所以我一直在自学 JavaScript,当我停工时,我的工作是为我们的销售团队进行扩展。
现在我没有无法解决的具体问题,但我有一个问题让我认为 javascript 中的函数有一些非常不同的地方,但我仍然缺少。
看看这段代码,我会解释一下让我感到困惑的地方:
function click(e) {
var selection = e.target.id;
}
document.addEventListener('DOMContentLoaded', function () {
var divs = document.querySelectorAll('div');
for (var i = 0; i < divs.length; i++) {
divs[i].addEventListener('click', click);
}
});
因此,在这段代码中,我了解除了 click(e) 部分之外发生了什么。'e' 是一个事件对象,对吗?我不清楚它是如何通过的,以及它是如何知道“e”的意思的。我假设我可以用“foo”替换 e,它仍然可以工作,但究竟发生了什么还不清楚。我很确定它与这行代码有关:
divs[i].addEventListener('click', click);
但我不明白幕后发生了什么,才能以这种方式发生。
另一个例子是来自http://developer.chrome.com/extensions/messaging.html的消息传递:
contentscript.js
================
chrome.extension.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
background.html
===============
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
我不清楚其中的“响应”来自何处,就像另一个示例中的“e”一样。任何帮助揭开它是如何工作的神秘面纱将不胜感激,我愿意学习,我还没有找到一个很好的解释。