博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
"类" 库添加继承
阅读量:5172 次
发布时间:2019-06-13

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

var Class = function (parent) {    var klass = function () {        this.init.apply(this, arguments);    }    if (parent) {        /**         *  所有的子类都共享了同一个原型         *  避免在继承类的时候创建实例,只有实例的属性才会被继承         *  而非类的属性,设置对象的__proto__         * **/        var ctor = function () {        };        ctor.prototype = parent.prototype;        klass.prototype = new ctor;    }    klass.prototype.init = function () {    }    //prototype别名    klass.fn = klass.prototype;    //定义类的别名    klass.fn.parent = klass;    klass.__super__ = klass.__proto__;    //给类添加属性    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;}var Animal = new Class;Animal.include({    breath:function () {        console.log("breath")    }})var Cat = new Class(Animal)var tommy = new Cat;console.log(tommy)
 

转载于:https://www.cnblogs.com/aaronjs/archive/2012/08/24/2654155.html

你可能感兴趣的文章
数据库
查看>>
常见Struts、Hibernate、Spring、J2EE、ibatis、Oracle等开发框架架构图及其简介
查看>>
Java为何大行其道
查看>>
CFileDialog的使用方法简单介绍
查看>>
send,recv,sendto,recvfrom
查看>>
C#开发问题汇总
查看>>
Kettle
查看>>
[复习]Python基础回顾
查看>>
LNMP
查看>>
java 读写锁
查看>>
_itoa_s替换 itoa
查看>>
Nginx负载均衡
查看>>
【bzoj3456】城市规划(多项式求逆+dp)
查看>>
#ifdef 支持Mac #ifndef 支持Windows #if defined (Q_OS_WIN) 应该可以再两个系统通用
查看>>
linux源码中的核心数据结构
查看>>
EF执行SQL语句
查看>>
Ogre学习教程:Ogre1.8.1+VS2010环境配置2(转)
查看>>
webpack 样式表抽离成专门的单独文件并且设置版本号
查看>>
个人作业week7——前端开发感想总结
查看>>
VC Dimension -衡量模型与样本的复杂度
查看>>