首页 > 其他 > 详细

Class 类

时间:2014-07-23 20:18:45      阅读:242      评论:0      收藏:0      [点我收藏+]

在javascript 中应用类的概念

// javascript web applications 富应用开发

// 类库:生成类的地方;给所有的构造函数提供基础方法,如 extend, include...
var Class = function () {
    
    var klass = function () {

        // 实例化对象时立即运行init函数
        this.init.apply(this, arguments);
    };

    klass.prototype.init = function () {};

    // 定义 prototype 的别名
    klass.fn = klass.prototype;

    // 给类添加属性
    klass.extend = function (obj) {
        var prop;
        for (prop in obj) {
            klass[prop] = obj[prop];
        }
    };

    // 给实例添加属性
    klass.include = function (obj) {
        var prop;
        for (prop in obj) {
            klass.fn[prop] = obj[prop];
        }
    };

    return klass;  // 仍然返回一个类
};

// new 一个类
var Person = new Class();

/* 
 * 初始化方法(生成实例的时候一定会运行的方法)
 *
 * 等同于:
 *
 * var Person = function (name) {
 *    this.name = name;
 * };
*/
Person.prototype.init = function (name) {
    this.name = name;
};

// 原型方法
Person.include({
    say: function () {
        console.log(this.name + " say hello to everyone!");
    }
});

var person = new Person("Davi");

person.say();  // Davi say hello to everyone!

 

用 backboon.js 实现类

/*
 * <script src="js/underscore-1.6.0.js"><\/script>
 * <script src="js/backbone-1.1.2.js"><\/script>
 *
 * backboon.js 是一个 MVC 框架
 * 重度依赖 underscore.js
*/

// 用 backbone 框架实现类
var Person = Backbone.Model.extend({
    initialize: function (attr) {
        var prop;
        for (prop in attr) {
            this[prop] = attr[prop];
        }
    },
    say: function () {
        console.log(this.name + " is " + this.age + " years old.");
    }
});

// 类的原型继承:即父类的扩充
var Student = Person.extend({
    study: function () {
        console.log("good good study!");
    }
});

// 实例化的时候执行了 initialize 初始化函数
var s = new Student({
    name: "Davi",
    age: "20"
});

// Person 的 say 方法;Student 的 study 方法。
s.say();    // Davi is 20 yeas old.
s.study();  // good good study!

Class 类,布布扣,bubuko.com

Class 类

原文:http://www.cnblogs.com/xiankui/p/3863269.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!