我是JavaScript和YUI的新手.在YUI库示例中,您可以找到此构造的许多用法:
(function() {
var Dom = YAHOO.util.Dom,
Event = YAHOO.util.Event,
layout = null,
...
})();
Run Code Online (Sandbox Code Playgroud)
我认为最后几个括号是在声明之后执行该函数.
...但是围绕函数声明的前一组括号怎么样?
我认为这是一个范围问题; 这是将内部变量隐藏到外部函数和可能的全局对象中.是吗?更一般地说,这些括号的机制是什么?
我刚刚开始学习Javascript,几乎什么都不懂。我正在尝试将 onclick 事件附加到 HTML 中的元素。
var joinList = function() {
alert("This should display when clicked");
}
document.getElementById("header").onclick = joinList;
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码。当单击具有 header ID 的元素时,不会发生任何事情。我究竟做错了什么?
以下是我的 HTML 代码
<!DOCTYPE html>
<html>
<head>
<title>Testing Page</title>
<script src="testing.js"></script>
</head>
<body>
<h1 id="header">Andrew Dawson</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我最近阅读了一些JS模块设计模式.我遇到了这个小代码片段,如下所示.
(function(window) {
var Module = {
data: "I'm happy now!"
};
window.Module = Module;
})(window);
Run Code Online (Sandbox Code Playgroud)
我还不太了解这段代码,我的问题是:
自一段时间以来,我一直在使用JS进行编程,但是从未遇到过使用立即函数的需求,例如:
(function(){
console.log('hello, I am an immediate function');
}())
Run Code Online (Sandbox Code Playgroud)
如果我只写以下内容,会有什么区别:
console.log('hello, I am an immediate function');
Run Code Online (Sandbox Code Playgroud)
?无论如何,我无权使用此功能(未在任何地方分配该功能)。我认为(但我不确定)我可以在没有即时功能的情况下实现所有功能-那么人们为什么要使用它呢?