面向对象的JavaScript工具

| 我一直在研究网站的用户界面(www.swalif.com:如果愿意,请使用chrome进行翻译)。不熟悉jQuery,我从JavaScript开始,现在文件很大:大约1000行代码。此外,代码变得越来越难以处理和更改。 因此,我一直在寻找一种方法,可以以一种面向对象的方式解决这个问题,从而产生一个干净,可重用且体系结构良好的系统。使用JQuery提供的功能来使代码保持较小也很好。 问题在于那里有很多工具,我无法决定要花些时间来完成这项任务。例如mootools,prototype,jQuery等。因此,我需要有人带领我朝着正确的方向发展。 这是我们的网站www.swalif.com。也欢迎任何其他建议。     
已邀请:
对于面向对象的javascript开发,我建议使用John Resig的Simple javascript Inheritance。它是一小段JavaScript,可让您定义类,从基类派生并重写方法。
var Person = Class.extend({
  init: function(isDancing){
    this.dancing = isDancing;
  },
  dance: function(){
    return this.dancing;
  }
});
var Ninja = Person.extend({
  init: function(){
    this._super( false );
  },
  dance: function(){
    // Call the inherited version of dance()
    return this._super();
  },
  swingSword: function(){
    return true;
  }
});

var p = new Person(true);
p.dance(); // => true

var n = new Ninja();
n.dance(); // => false
n.swingSword(); // => true

// Should all be true
p instanceof Person && p instanceof Class &&
n instanceof Ninja && n instanceof Person && n instanceof Class
    
我认为,使用主动开发的框架并考虑到可扩展性,可重用性,混合性和变异性,并使用OOP构建框架会更好。 这正是创建MooTools的原因。 就是说,如果您不熟悉JS,将很难掌握MooTools,因为它不是初学者的框架。再说一次,如果您掌握了OOP的概念,那就应该没事了。     
实际上,不要使用框架来实现您的OOP。当您处理使用Javascript的非常灵活的函数原型系统来实现类似OOP的操作的精妙技巧时,您会对Java语言作为一种语言有了更丰富的了解。 在此处阅读:http://phrogz.net/JS/Classes/OOPinJS.html。     
如果您只需要组织代码而不需要库,则可以使用http://code.google.com/p/joose-js/。否则,请使用您正在使用的库的oop模型。 简单的例子
Module(\"Test\", function (m) {
    Class(\"Point\", {
        has: {
            x: {
                is:   \"rw\",
                init: 0
            },
            y: {
                is:   \"rw\",
                init: 0
            }
        },
        methods: {
            clear: function () {
                this.setX(0);
                this.setY(0);
            }
        }
    })
})
    

要回复问题请先登录注册