jquery将值传入函数AFTER函数?

时间:2013-03-06 02:41:14

标签: javascript jquery

我是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'时,该功能将不再有效。

2 个答案:

答案 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');

...你试图在函数调用中粘贴变量声明,这将无效。这就是为什么在函数调用之上和之外声明变量不会抛出任何错误。