关于(jquery)的解释?

时间:2014-02-15 10:28:29

标签: javascript jquery

以下是许多用户脚本中使用的代码:

function with_jquery(f) {
var script = document.createElement("script");
script.type = "text/javascript";
script.textContent = "(" + f.toString() + ")(jQuery)";
document.body.appendChild(script);
};

除了这一行,我理解其中的一切:

  script.textContent = "(" + f.toString() + ")(jQuery)";

我知道文本内容设置了脚本的文本内容(当然),但我无法理解=之后的所有内容。不应该这样:

   script.textContent = string; 

3 个答案:

答案 0 :(得分:1)

通过用( f.toString())(jQuery)包装字符串,用户正在设置要作为immediately invoked function expression执行的字符串,并将jQuery对象传递给该函数。

我们希望f.toString()看起来像

function($){ [doing something...] }

这样jQuery对象就代表$

当然,仍然需要评估新字符串。

答案 1 :(得分:1)

该函数使用以下代码创建一个脚本元素:

(content-of-f)(jQuery)

因此,如果传递包含函数的字符串(例如function($) { do something }),则在jQuery - 参数传递$时执行该函数。

答案 2 :(得分:1)

匿名函数:

(function(){
  //Normal code goes here
})

真正有趣的部分是当我们在最后添加这个时发生的事情:

();

这两个小括号会导致前面括号中包含的所有内容 立即执行。

当你写下(jquery)()时如下:

(function(a){
  console.log(a === jquery); //Returns 'true'
})(jquery);

您的代码中对'jquery'的所有引用都可以重命名为'a'。检查此CHEK THIS