1

我是 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',该功能不再起作用。

4

2 回答 2

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>
于 2013-03-06T02:59:08.010 回答
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');

...您试图在函数调用中添加变量声明,但这是行不通的。这就是为什么在函数调用之外声明上面的变量不会引发任何错误的原因。

于 2013-03-06T02:42:39.187 回答