我正在为下面的这段代码而苦苦挣扎。为什么他们在函数scrollDepth()之前使用前缀jQuery?删除前缀后会发生什么情况?
<script src="jquery.scrolldepth.min.js"></script>
<script>
jQuery(function() {
jQuery.scrollDepth();
});
</script>
你可能熟悉jQuery中的$
符号。这实际上是jQuery
对象的别名。所以,我们基本上有一个名称为jQuery
的对象,它包含我们在jQuery中使用的所有api方法。
jQuery.each = function(){...}
jQuery.ajax = function(){...}
jQuery.makeArray = function(){...}
等等
现在,scrolldepth是一个插件,它扩展了jQuery api,类似于上面的方法
jQuery.scrollDepth = function(){...}
这就是为什么它被称为像jQuery.scrollDepth()
scrollDepth是jQuery对象上的函数,因此必须在jQuery对象上调用它。(该函数来自此插件,该插件将函数添加到jQuery
对象;它不是jQuery本身的一部分。
在这一行:
jQuery.scrollDepth();
您所说的jQuery
"前缀"是具有scrollDepth
函数的对象的名称。 如果没有对该对象的引用,引擎将不知道在哪里可以找到该函数。
并非所有函数都是全局的(谢天谢地)。 在面向对象的世界中,函数存在于特定的对象上。 您需要引用对象才能调用其函数。