js和jquery的OOP框架

时间:2011-06-19 09:07:42

标签: javascript jquery oop

我正在开发一个Web应用程序。应用程序变得相当复杂,对于现存的我决定我必须介绍一些oop概念。

原始的js oop对我来说不够原生(我是.net开发人员),它的继承很糟糕。我遇到http://moo4q.com/看起来很有希望,但似乎相当新鲜。这对我来说是一个很大的风险。

还有哪些其他oops框架,以增强我的jquery / js开发?

编辑1

我不是在寻找替代jquery的框架,我正在寻找一个框架来扩展它。

谢谢

6 个答案:

答案 0 :(得分:7)

Backbone.js将一些OOP概念添加到javascript中,可能会对您有所帮助。它是jQuery的补充,增加了它的功能。

答案 1 :(得分:4)

您可能需要考虑使用Knockout来简化使用MVVM设计模式的UI实现。

答案 2 :(得分:3)

检查http://ejohn.org/blog/simple-javascript-inheritance/ OOP方法形式John Resig(JQuery的创建者)

答案 3 :(得分:3)

就我的研究告诉我而言,目前最好的OO框架是http://prototypejs.org。它与jQuery有很多共同之处,但它超越了jQuery,因为它也是一个面向JavaScript面向对象的框架。

我不同意以上关于JavaScript中轻量级OO的帖子。当您编写一个大对象时,您不希望遇到大量低级技术OO细节 - 您只需要编写大量的类,并且知道您处于坚实的基础上并且原型将为您完成。

原型给你什么?一个干净的OO框架,支持继承,构造函数,mixins,调用超类方法的干净方法,特殊类成员,动态添加方法等等。

Prototype可以在与jQuery相同的页面上使用。这需要导入两个库的正确顺序,而不是更多。它非常小(98K缩小)。

答案 4 :(得分:3)

查看这个项目:

https://github.com/pylover/joop

  • 跨浏览器
  • Javascript原型
  • 继承层次结构
  • 多重继承&混入
  • 单身人士模式
  • 静态成员

示例:

Namespace('bmw.Car');

Class('bmw.Car', {
    maxSpeed : 200,                         // Prototype member
    __init__ : function(color,cylindres) {  // Constructor
        this.speed = 0;                     // Instance Member 
        this.color = color;
        this.cylindres = cylindres == undefined ? 4 : cylindres; 
    },
    isRunning : function() {                // Method
        return this.speed > 0;
    },
    run : function(speed) {
        this.speed = speed;
    }
}).StaticMembers({
    doors: 4,                               // Static field
    createSuperClass: function(){           // Static method
        return new this('gold',12);
    }
});

答案 5 :(得分:2)

Javascript有一种非常优雅的方式来处理对象。使用库来实现这些基本的OO功能时要小心。在Javascript中,您可以干净利落地编写面向对象的代码:

  • 只使用文字对象
  • 忘掉'新'语句和'原型'
  • 编写一个构建对象的函数,并将其称为“类”

以下是一个示例性的微框架(70行):

https://github.com/schuttelaar/Rococo2/wiki/Getting-started

请注意,虽然这个框架提供了一些DOM集成,但它实际上并不提供OO糖功能,而是提供了“编码风格”。

这是我自己的页面,解释JS中的featherlight OOP:

http://www.gabordemooij.com/jsoop.html