这些Jquery、ExtJs框架如何覆盖本机Javascript

这些Jquery、ExtJs框架如何覆盖本机Javascript,javascript,html,extjs,Javascript,Html,Extjs,我已经看过ExtJs使用以下代码的教程: var myDiv = Ext.get('myDiv'); myDiv.highlight(); hightlight()函数来自哪里?它是来自本机Javascript还是ExtJs框架?我做了简单的搜索,但在API文档中找不到它。如果hightlight()来自ExtJs框架,它实际上是如何覆盖Javascript中的本机行为的 我想知道Jquery选择器,比如说$('#myDiv')是如何被Javascript识别的?Javascript

我已经看过ExtJs使用以下代码的教程:

 var myDiv = Ext.get('myDiv');
 myDiv.highlight();   
hightlight()函数来自哪里?它是来自本机Javascript还是ExtJs框架?我做了简单的搜索,但在API文档中找不到它。如果hightlight()来自ExtJs框架,它实际上是如何覆盖Javascript中的本机行为的

我想知道Jquery选择器,比如说
$('#myDiv')
是如何被Javascript识别的?Javascript编译器不应该识别$('')符号,对吗


我的描述很差,很抱歉。我是javascript初学者。

Prototype、Ext等。扩展DOM对象的原型(顺便说一句,这很不错),例如
HtmleElement.Prototype
,并向其添加自己的函数。这允许您像示例中所示那样调用它们


jQuery根本不使用任何魔法
$
与普通字符一样,是JavaScript中的普通标识符。因此,它只不过是一个名为
$
的函数,在执行
$(“#选择器”)
等操作时调用它。该函数的返回值通常是一个jQuery对象,其行为类似于数组,并具有大量有用的方法。因此,您从不处理本机DOM对象,而只处理包含一个或多个对象的对象。

Prototype、Ext等。扩展DOM对象的原型(顺便说一句,这很不错),例如
HtmleElement.Prototype
,并向其中添加它们自己的函数。这允许您像示例中所示那样调用它们

jQuery根本不使用任何魔法
$
与普通字符一样,是JavaScript中的普通标识符。因此,它只不过是一个名为
$
的函数,在执行
$(“#选择器”)
等操作时调用它。该函数的返回值通常是一个jQuery对象,其行为类似于数组,并具有大量有用的方法。因此,您永远不会处理本机DOM对象,而只处理包含一个或多个DOM对象的对象。

Ext提供了一个对象,这是通过调用(如
Ext.get()
)返回的对象。元素包装DOM节点,但大多数情况下肯定不会更改HtmleElement对象(就像jQuery$函数一样)。事实上,该属性公开了原始未更改的DOM节点。它只是一个Ext.Element方法,在API文档中有明确的文档记录——这一点都不神秘

虽然Ext在以前的版本中用于修改一些本机JS对象(日期、字符串、对象),但它从未接触过本机HtmleElement对象。这曾经是大多数JS库中的常见做法,但从4.0版(几年前)开始,Ext没有触及任何本机JS原型。

Ext提供了一个对象,这是通过调用(如
Ext.get()
)返回的对象。元素包装DOM节点,但大多数情况下肯定不会更改HtmleElement对象(就像jQuery$函数一样)。事实上,该属性公开了原始未更改的DOM节点。它只是一个Ext.Element方法,在API文档中有明确的文档记录——这一点都不神秘


虽然Ext在以前的版本中用于修改一些本机JS对象(日期、字符串、对象),但它从未接触过本机HtmleElement对象。这曾经是大多数JS库中的常见做法,但从4.0版(几年前)开始,Ext没有触及任何本地JS原型。

$
是一个普通函数。这是一个很好的解读:
$
是一个普通函数。这是一个很好的解读:jQuery没有。jQuery将原来的对象包装起来。我认为IE不会让你扩展
HTMLElement.prototype
。在FF和GC中-没问题。-它确实扩展了DOM对象,而这些对象肯定不是ECMAScript的一部分(因为ECMAScript本身甚至不知道DOM是什么)@skyrim.ice基本上,它只是
HTMLElement.prototype.myFunc=…
。问题是,当IE提供
HTMLElement
时,它与
Array.prototype
一起工作,但与
HTMLElement.prototype
不一起工作。这是不正确的。Ext不会改变DOM节点API。get返回一个Ext-Element对象,该对象将DOM节点封装在自定义对象中,并提供所示的API。这个答案基本上与原始问题无关。jQuery将原来的对象包装起来。我认为IE不会让你扩展
HTMLElement.prototype
。在FF和GC中-没问题。-它确实扩展了DOM对象,而这些对象肯定不是ECMAScript的一部分(因为ECMAScript本身甚至不知道DOM是什么)@skyrim.ice基本上,它只是
HTMLElement.prototype.myFunc=…
。问题是,当IE提供
HTMLElement
时,它与
Array.prototype
一起工作,但与
HTMLElement.prototype
不一起工作。这是不正确的。Ext不会改变DOM节点API。get返回一个Ext-Element对象,该对象将DOM节点封装在自定义对象中,并提供所示的API。这个答案基本上与原来的问题无关。