我正在开发一个Web应用程序。应用程序变得相当复杂,对于现存的我决定我必须介绍一些oop概念。
原始的js oop对我来说不够原生(我是.net开发人员),它的继承很糟糕。我遇到http://moo4q.com/看起来很有希望,但似乎相当新鲜。这对我来说是一个很大的风险。
还有哪些其他oops框架,以增强我的jquery / js开发?
编辑1
我不是在寻找替代jquery的框架,我正在寻找一个框架来扩展它。
谢谢
答案 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
示例:
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: