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

时间:2011-05-06 23:16:16

标签: javascript jquery

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

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

  1. 向jQuery返回的DOM对象添加方法(可能使用jQuery的extend方法)
  2. 将jQuery返回的DOM对象添加为域对象的属性(反之亦然),并相应地委托调用。这样做的好处是能够将方法添加到域对象的原型中。
  3. 您对将OOP javascript与jQuery DOM操作混合有什么建议?

1 个答案:

答案 0 :(得分:2)

你的方法非常有趣。我会告诉你我的意见

  
      
  1. 为jQuery返回的DOM对象添加方法(可能使用   jQuery的扩展方法)
  2.   

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

  
      
  1. 将jQuery返回的DOM对象添加为域对象的属性   (反之亦然),并委托召集   适当。这有好处   能够添加方法   域对象的原型。
  2.   

我认为这是一种非常非常好的做法,正如您所说,我们将添加对象原型而不是对象实例的方法。 那是oop

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

希望这会有所帮助。最好的问候