Javascript Mootools扩展了;功能“;用一个“";扩展;方法使jQuery不可用

Javascript Mootools扩展了;功能“;用一个“";扩展;方法使jQuery不可用,javascript,jquery,oop,mootools,mozilla,Javascript,Jquery,Oop,Mootools,Mozilla,Mootools扩展了“Function”类,并在其中添加了一个名为“extend”的新方法。现在,jQuery尝试使用jQuery.prototype.extend添加“extend”函数。但是,由于“extend”已经是jQuery对象的一部分(因为jQuery是函数类的对象),所以jQuery.prototype.extend不起作用。 有人在同时使用Mootools和jQuery时遇到过这种冲突吗 更一般地说,如果扩展了“函数、数组或对象”之类的本机类,我们有办法恢复到原始定义吗?您尝试

Mootools扩展了“Function”类,并在其中添加了一个名为“extend”的新方法。现在,jQuery尝试使用jQuery.prototype.extend添加“extend”函数。但是,由于“extend”已经是jQuery对象的一部分(因为jQuery是函数类的对象),所以jQuery.prototype.extend不起作用。 有人在同时使用Mootools和jQuery时遇到过这种冲突吗


更一般地说,如果扩展了“函数、数组或对象”之类的本机类,我们有办法恢复到原始定义吗?

您尝试过jQery.noConflict吗

我能想到的唯一方法是:

<script type="text/javascript">
    // copy the original function
    var ext = Function.prototype.extend;
    // remove it
    delete Function.prototype.extend;
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 

<script type="text/javascript">
    // Copy the jQuery version
    var jqext = jQuery.prototype.extend;
    // remove it (for sanity).
    delete jQuery.prototype.extend;

    // reassign the original function.
    Function.prototype.extend = ext;
    // remove the jQuery extend method (now the original Function.extend method)
    delete jQuery.prototype.extend;
    // reassign jQuery's original extend method.
    jQuery.prototype.extend = jqext;
</script>

//复制原始函数
var ext=Function.prototype.extend;
//移除它
删除Function.prototype.extend;
//复制jQuery版本
var jqext=jQuery.prototype.extend;
//移除它(为了理智)。
删除jQuery.prototype.extend;
//重新分配原始函数。
Function.prototype.extend=ext;
//删除jQuery扩展方法(现在是原来的Function.extend方法)
删除jQuery.prototype.extend;
//重新分配jQuery的原始扩展方法。
jQuery.prototype.extend=jqext;

是的,我有。noConflict有助于避免和“$”冲突。然而,这里并不是关于变量命名的。这是关于扩展基类的。解决方案很好。然而,我不明白为什么我们要删除jQuery.prototype.extend(为了理智起见),然后在重新分配function.prototype.extend之后再次删除。更改基类是否也会更改已继承的类?我删除了它,因为我不喜欢需要补偿如果
Function.prototype.extend=ext搞乱了它。我发现分配给空变量名不太可能需要调试。如果您在本地定义原型链,为什么您会关心它?如果它在该范围内看到jQuery.prototype.extend,它将/不应该转到Function.prototype.extend。。。他们似乎没有检查函数jQuery.fn的原型链实际上定义为等于jQuery.prototype