这些jQuery是如何覆盖本机JavaScript的



我使用以下代码从EXTJ中看到了教程:

 var myDiv = Ext.get('myDiv');
 myDiv.highlight();   

Hightlight()函数在哪里?是来自本机JavaScript还是ExtJS框架?我做了简单的搜索,但在API文档中找不到。如果Hightlight()来自ExtJS框架,那么它如何实际覆盖JavaScript中的本机行为?

我想知道如何jQuery选择器,假设$('#myDiv')可以通过JavaScript识别?$('')符号不应由JavaScript编译器识别吗?

我的描述很差,为此感到抱歉。我是JavaScript初学者。

原型,ext等。扩展了dom对象的原型(顺便说一句,这是一个非常有问题的行为),例如HTMLElement.prototype,并向其中添加自己的功能。这使您可以像示例中所示一样称呼它们。

JQuery Hovever根本不使用任何魔法。$是JavaScript中的普通标识符,就像普通字符一样。因此,它不过是一个名为 $的函数,然后在执行$('#selector')等时调用,该功能的返回值通常是一个jQuery对象,它的行为就像数组,并且具有大量有用的方法。因此,您永远不会处理本机DOM对象,而只是处理一个包含其中一个或多个的对象

ext提供一个元素对象,这就是诸如 Ext.get()之类的调用返回的元素对象。元素 wraps dom节点,但大多数肯定不会改变htmlelement对象(就像jQuery $函数一样)。实际上,元素属性暴露了原始的未更改的DOM节点。element.highlight()只是一个ext.Element方法,在API文档中清楚地记录了有关的方法 -

没有什么神秘的。

虽然EXT用于修改以前版本(日期,字符串,对象)中的某些本机JS对象,但它从未触摸本机Htmlelement对象。这曾经是大多数JS LIB的常见实践,但是从4.0版(几年)开始,Ext没有触及任何本地JS原型。

最新更新