javascript对象原型与jquery冲突

javascript object prototype conflicting with jquery?

本文关键字:jquery 冲突 原型 对象 javascript      更新时间:2023-09-26

我正在尝试实现这里提供的解决方案,但显然与本票证中描述的jquery冲突。

到目前为止,我还没有找到解决方案,有什么想法吗?

我想实现Shelby Moore 提出的继承机制

这可能是问题的原因,扩展对象原型:

Object.prototype.Inherits = function(parent)
{
    if(arguments.length > 1)
    {
        parent.apply(this, Array.prototype.slice.call(arguments, 1));
    }
    else
    {
        parent.call(this);
    }
}

第1版:经过大量阅读,我采用了以下模式:

NewFunction.prototype = Object.create(new FunctionToInheritFrom());

扩展Object.prototype扩展了所有对象,因此如果您修改所有对象的原型,您可以阻止它们所需的行为,这就是为什么应该避免直接修改为Object原型的原因。更好的做法是扩展自定义函数原型,以确保不会破坏其他原型,即由jQuery等框架提供的原型。即使是表示DOM元素的对象也会被修改,这通常是个坏主意。

尽管如此,我想指出的是,Javascript本身并没有定义真正的继承,试图解决这个问题会导致很多问题,并使开发变得更加困难。Javascript中的继承是基于原型的继承,这与真正的继承不同,面对这一事实,使用Javascript自己的方法进行"类似继承"(即在这里描述)是直接的,效果非常好。

对我来说,Javascript继承更像是合并对象成员,关于这一点的一篇非常好的文章是douglas Crackford的这篇文章,我认为它值得一读。

我无法复制这个东西。。它的工作原理很好代码很简单,就像这个

Object.prototype.Inherits = function(parent)
{
    if(arguments.length > 1)
    {
        parent.apply(this, Array.prototype.slice.call(arguments, 1));
    }
    else
    {
        parent.call(this);
    }
}
    $(document).ready(function(){
        $('input').click(function(){
     alert();
     });
    });