当前位置:  开发笔记 > 编程语言 > 正文

哪个JavaScript库具有最全面的类继承支持?

如何解决《哪个JavaScript库具有最全面的类继承支持?》经验,为你挑选了5个好方法。

在玩了十几种不同的JavaScript库(例如Prototype,jQuery,YUI)之后,我发现每个不同的库都有不同的方式来模拟某种类层次结构并提供某种类继承支持.(除了jQuery)除了非常恼火,当你创建一个新类时,它必须依赖于库,除非你采用普通的方法.

我想知道哪个库提供了对类继承的最佳支持以及原因.

我希望有一天,JavaScript库作者可以就类创建和继承的一种风格达成一致.



1> Aaron Qian..:

我发现有一个以Ruby为模型的Javascript框架:

Js.Class

另一个好处是:

Joose-js(模仿驼鹿(perl))

我更喜欢Josse,因为它似乎更积极地开发,语法看起来也很整洁!

有什么想法吗???(也许这应该是另一个问题??)


对不起,我无耻地将自己标记为首选答案!

2> Konstantin T..:

我认为Microsoft Ajax完美地实现了它(使用名称空间,继承和接口等)

样品:

Type.registerNamespace("Demo");

Demo.Person = function(firstName, lastName, emailAddress) {
    this._firstName = firstName;
    this._lastName = lastName;
    this._emailAddress = emailAddress;
}

Demo.Person.prototype = {

    getFirstName: function() {
        return this._firstName;
    },

    getLastName: function() {
        return this._lastName;
    },

    getName: function() {
        return this._firstName + ' ' + this._lastName;
    },

    dispose: function() {
        alert('bye ' + this.getName());
    }
}
Demo.Person.registerClass('Demo.Person', null, Sys.IDisposable);

// Notify ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();



3> sickill..:

你应该尝试优雅:

http://classy.pocoo.org/

它很简单,非常小,但在构建我的类时我拥有所需的一切.



4> Andreas Grec..:

看看Prototype.这是一个示例:

// properties are directly passed to `create` method
var Person = Class.create({
  initialize: function(name) {
    this.name = name;
  },
  say: function(message) {
    return this.name + ': ' + message;
  }
});

// when subclassing, specify the class you want to inherit from
var Pirate = Class.create(Person, {
  // redefine the speak method
  say: function($super, message) {
    return $super(message) + ', yarr!';
  }
});

var john = new Pirate('Long John');
john.say('ahoy matey');
// -> "Long John: ahoy matey, yarr!"



5> Surya..:

Base2有简单的继承机制,请参阅John Resig的帖子(帖子中的评论也很有趣).

还要记住的是,尝试在Javascript中模拟经典OO最近已经得到了很多抨击(尽管在JS库革命的最初时期,它已经非常热情地进行了探索).

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有