《基于MVC的JavaScript Web富应用开发》读书笔记一:MVC和类

简介:

  Create Class:

var Class = function(parent){
    var klass = function(){
        this.init.apply(this, arguments);
    };

    if(parent) {
        var subclass = function(){};
        subclass.prototype = parent.prototype;
        klass.prototype = new subclass;
    }

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

    klass.proxy = function(func){
        var self = this;
        return (function(){
            func.apply(self, arguments);
        });
    };

    klass.fn.proxy = klass.proxy;

    klass.extend = function(obj){
        var extended = obj.extended;
        for(var i in obj){
            klass[i] = obj[i];
        }
        if (extended) extended(klass)
    };

    klass.include = function(obj){
        var included = obj.included;
        for(var i in obj){
            klass.fn[i] = obj[i];
        }
        if (included) included(klass)
    };

    return klass;
};

  Demo:

var Person = new Class;
Person.include({
    init: function(name, age){
        this.name = name;
        this.age = Person.checkAge(age) ? age : null;
    },
    sayHello: function(){
        console.log("Hi , My name is " + this.name + (this.age ? ", i am " + this.age + " years old this year" : ""));
    }
});

Person.extend({
    needWater: true,
    checkAge: function(age){
        return age>0 && age < 150;
    }
});

var jim = new Person("Jim", 10);
jim.sayHello();
//output:Hi , My name is Jim, i am 10 years old this year

var tom = new Person("Tom", -1);
tom.sayHello();
//output:Hi , My name is Tom

  extend中是静态属性和方法,include中是实例属性和方法。

  当属性和方法与具体实例无关或是公用的时候,用静态属性和方法,否则用实例属性和方法。





本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

相关文章
|
Web App开发 JavaScript 前端开发
JavaScript 类(class)
JavaScript 类(class)
197 2
JavaScript 类(class)
|
JavaScript 前端开发 Java
JavaScript 类知识点概览
概览JavaScript中类的知识点,包括类的定义和实现、添加方法和get/set方法、类的继承和静态方法的使用。通过学生类和人员类的例子,演示了类的构造器、方法定义、继承关系和静态方法的调用。
JavaScript 类知识点概览
|
JavaScript 前端开发
JavaScript基础知识-构造函数(也称为"类")定义
本文介绍了JavaScript中构造函数(也称为“类”)的定义和使用方法。
266 1
JavaScript基础知识-构造函数(也称为"类")定义
|
JavaScript 前端开发
JS中Promise的类式实现写法
JS中Promise的类式实现写法
|
JavaScript 安全
ES6中JS类实现的解读
ES6中JS类实现的解读
176 3
|
JavaScript 前端开发 开发者
JavaScript 类继承
JavaScript 类继承
187 1
|
JavaScript 前端开发 索引
|
前端开发 JavaScript 开发者
深入理解JavaScript中的对象与类
深入理解JavaScript中的对象与类
206 0
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习