库方法如何在javascript中工作?

时间:2018-09-01 00:03:52

标签: javascript jquery

我对javascript有点陌生,并且一直在使用库/ css框架来构建一些我出于娱乐目的而构建的网站。为了使用框架创建者提供的某些功能,文档说要在jQuery对象上调用方法,例如$('.my-class').someMethod()。例如,以下是如何在所需的任何输入字段上初始化Materialize的自动完成功能的方法:

$(document).ready(function(){
    $('input.autocomplete').autocomplete({
      data: {
        "Apple": null,
        "Microsoft": null,
        "Google": 'https://placehold.it/250x250'
      },
    });
  });

现在,据我了解,当您运行$('input.autocomplete')时,jQuery将返回一个{jQuery {3}}所示的“ jQuery对象”。

因此,我在浏览器中运行了一个带有虚拟页面的测试,并将该对象记录到控制台,它返回了一个包含一个元素的数组-我搜索的div的数组:

here

我猜上面图像中所有的紫色文本都是jQuery对象的属性。

现在我的问题是:我怎么可能在该对象上调用.autocomplete()? jQuery对象中不存在.autocomplete()方法,为什么不抛出错误?

我很难理解.autocomplete()几乎可以在任何jQuery对象上运行...它如何知道在哪里可以找到此方法?我想使用点表示法,它必须是要链接到的类中的一种方法。

2 个答案:

答案 0 :(得分:0)

  

我怎么可能在此对象上调用.autocomplete()? jQuery对象中不存在.autocomplete()方法,那么为什么不抛出错误?

jQuery插件可以向jQuery对象添加自己的功能,有关更多信息,请参见jQuery.fn.extend

此方法来自尚未安装的jQuery插件。无法知道哪个没有更多信息,而是there are lots of options

请注意,控制台内的此视图也不会显示所有jQuery方法。  这是查找可以在任何对象上调用的可用方法和属性的更好方法:

show methods and properties in console

答案 1 :(得分:0)

如果您这样做

console.log({});

您将获得{} 没有办法但是任何对象都会继承所有父方法,但是您不会在console.log

中看到它。