WEB开发网
开发学院网页设计JavaScript JS.Class - 1. Classes & Inheritance 阅读

JS.Class - 1. Classes & Inheritance

 2009-10-13 00:00:00 来源:WEB开发网   
核心提示:对于 JavaScript,我是既爱又头疼,JS.Class - 1. Classes & Inheritance,喜欢它的简洁和灵活性,头疼那 "面向过程" 的开发方式,它借鉴了 Ruby 的几种风格来模拟 Classes、Inheritance、Mixins 以及 Modules,(尽管

对于 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

1 2  下一页

Tags:JS Class Classes

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接