JS.Class - 1. Classes & Inheritance
2009-10-13 00:00:00 来源:WEB开发网对于 JavaScript,我是既爱又头疼。喜欢它的简洁和灵活性,头疼那 "面向过程" 的开发方式。也正因为如此,我曾在相当长的时间里拒绝使用它。对于一个习惯了 OO 思想的人来说,将数据和行为分离的编码风格纯粹是一种痛苦折磨。混乱的 HTML 加上同样乱糟糟的 .js,让我无时无刻不觉得那是一块沼泽地。兴许是完美主义洁癖在作怪,new function、对象冒充、原型链,亦或者李战大侠的 "甘露模型" 都不太符合我的要求。面向对象并不仅仅是对象和继承,它还包括更多的东西。总算是功夫不负有心人,JS.Class —— Ruby-like classes for JavaScript 几乎完美地做到了这些,同时也让我见识了 JavaScript 的强大。
JS.Class 库被设计用来简化 JavaScript 面向对象开发,它借鉴了 Ruby 的几种风格来模拟 Classes、Inheritance、Mixins 以及 Modules。(尽管作者在介绍里使用 "simulate" 这个词,但我觉得这更像是 DSL 的一种)
首先我们看一个简单的演示。
var User = new JS.Class(
{
initialize : function(name)
{
if (name != undefined) this.name = name;
},
name : "Anonymous",
age : 0,
sex : "UnKnown",
getInfo : function()
{
return "Name: " + this.name + "; Age: " + this.age + "; Sex: " + this.sex;
},
show : function(content)
{
alert("<User>\r\n" + content);
}
});
var user = new User("Tom");
user.age = 30;
user.sex = "Female";
var info = user.getInfo();
user.show(info);
编缉推荐阅读以下文章
- JS.Class - 3. Modules & Mixins
- JS.Class - 2. Methods & Types
赞助商链接