我是javascript&的新手jQuery的。我正在尝试为我的网站创建一个功能,让人们显示他们在自己的网站上获得的徽章(我会提供一些他们可以复制/粘贴的代码)。我有人帮助我使用javascript,我让它工作得很好,但我找不到任何解释它的jQuery文档?
<script type="text/javascript">
(function(id) {
// include js via php file with the id in as a parameter
})("myid");
</script>
id在标记为“myid”的区域中传递,在jQuery中你能以这种方式传递一个静态变量吗?当我尝试删除("myid")
并将其更改为var id = 'myid'
时,该功能将不再有效。
答案 0 :(得分:2)
您显示的代码中"myid"
的出现不是静态变量。它是一个字符串文字,作为参数传递给匿名函数。声明了匿名函数,然后立即被调用。
如果您想知道为什么程序员按照他们的方式编写JavaScript。以下可能有所帮助。
以下两个示例都会在警告中显示“myid”:
示例1:
<script type="text/javascript">
var id = 'myid';
alert(id);
</script>
示例2:
<script type="text/javascript">
(function(id) {
alert(id);
})('myid');
</script>
第一个例子将“id”声明为变量。它是一个全局变量,实际上作为属性添加到window
对象。第二个示例定义了一个匿名函数并立即调用它,传入'myid'
作为“id”参数的值。该技术避免使用全局变量。
当然,您还可以通过执行以下操作来避免全局变量:
<script type="text/javascript">
(function() {
var id = 'myid';
alert(id);
})();
</script>
答案 1 :(得分:1)
如果你将"myid"
粘贴在一个变量中然后传入该变量,它就会起作用。像这样:
var memberID = "myid";
(function(id) {
// include js via php file with the id in as a parameter
})(memberID);
如果你这样说......
(function(id) {
// include js via php file with the id in as a parameter
})(var id = 'myid');
...你试图在函数调用中粘贴变量声明,这将无效。这就是为什么在函数调用之上和之外声明变量不会抛出任何错误。