将OOP javascript与jQuery DOM操作混合使用

我希望开始大规模开发
javascript jQuery开发.我最近在
Douglas Crockford年阅读了“JavaScript:The Good Parts”,并为基于原型的面向对象开发做好了充分的准备.

我现在正试图弄清楚如何用Crockford引入的模式编织jQuery使用.我可以想到两种合理的方法:

>为jQuery返回的DOM对象添加方法(可能使用jQuery的extend方法)
>将jQuery返回的DOM对象添加为域对象的属性(反之亦然),并适当地委托调用.这样做的好处是能够向域对象的原型添加方法.

您有什么建议将OOP javascript与jQuery DOM操作混合使用?

最佳答案 你的方法非常有趣.我会告诉你我的意见

  1. Add methods to DOM objects returned by jQuery (possibly using
    jQuery’s extend method)

我认为这是一个不好的做法.为什么?你正在为单个对象添加方法,所以这些对象没有类(嗯,它们可能有一个,但我们没有定义类方法).它将是一种基于对象的实践,而不是面向对象的实践.

  1. Add the DOM objects returned by jQuery as properties of domain objects
    (and vice-versa), and delegate calls
    appropriately. This has the benefit of
    being able to add methods to the
    domain objects’ prototype.

我认为这是一个非常非常好的做法,正如你所说,我们将添加对象原型而不是对象实例的方法.那是哎呀.

只是评论,因为我认为这是一个高度自由的问题.在制作jquery插件时,我认为为插件创建一个类是一个很好的做法,并使用.data()将相应的类实例附加到应用它的节点,因此我们不会丢失对该实例的引用.它更接近OO练习我认为它可以用于插件.

希望这可以帮助.最好的祝福

点赞