博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《基于MVC的JavaScript Web富应用开发》读书笔记一:MVC和类
阅读量:5102 次
发布时间:2019-06-13

本文共 1657 字,大约阅读时间需要 5 分钟。

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中是实例属性和方法。

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

 

作者:

出处:

转载于:https://www.cnblogs.com/dkwlxq/archive/2013/05/08/3066470.html

你可能感兴趣的文章
【一周一算法】算法3:最常用的排序——快速排序
查看>>
四则运算实现
查看>>
JMV监控工具之JConsole
查看>>
iis 访问网站需要进行身份验证
查看>>
Project: Individual Project - Word frequency program
查看>>
python安装BeautifulSoup注意事项
查看>>
DEDE时间
查看>>
《神经网络和深度学习》系列文章七:实现我们的神经网络来分类数字(上)...
查看>>
java——线程池
查看>>
JY游戏之毁经典《扫雷》
查看>>
用户角色权限设计
查看>>
URAL-1991 The battle near the swamp 水题
查看>>
Expected value at 1:0 异常解决方法
查看>>
Linux OS共享文件
查看>>
Pycharm 新版本打开md文件卡死-解决办法
查看>>
Tengine编译安装+lua+sticky模块
查看>>
多平台Native库打入JAR包发布实战
查看>>
潜移默化学会WPF(安全篇<二>)--C#对称加密算法
查看>>
[Aaronyang] 写给自己的WPF4.5 笔记10[层次数据需求处理,TreeView绿色文章1/4]
查看>>
财政bug之”Y2K Accounting Bug“
查看>>