为什么他们在这里使用函数名称前的前缀jQuery



我正在为下面的这段代码而苦苦挣扎。为什么他们在函数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函数的对象的名称。 如果没有对该对象的引用,引擎将不知道在哪里可以找到该函数。

并非所有函数都是全局的(谢天谢地)。 在面向对象的世界中,函数存在于特定的对象上。 您需要引用对象才能调用其函数。

最新更新