《基於MVC的JavaScript Web富應用開發》讀書筆記一:MVC和類

來源:互聯網
上載者:User

  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 yearvar tom = new Person("Tom", -1);tom.sayHello();//output:Hi , My name is Tom

  extend中是靜態屬性和方法,include中是執行個體屬性和方法。

  當屬性和方法與具體執行個體無關或是公用的時候,用靜態屬性和方法,否則用執行個體屬性和方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.