zoukankan      html  css  js  c++  java
  • javascript设计模式5

    子类引用父类

    function extend(subClass,superClass){
        var F=function(){};
        F.prototype=superClass.prototype;
        subClass.prototype=new F();
        subClass.prototype.constructor=subClass;
        subClass.superClass=superClass.prototype;
        if(subClass.prototype.constructor==Object.prototype.constructor){
            superClass.prototype.constructor=superClass;
        }
    }

    原型式继承

    var Person={
        name:'default name',
        getName:function(){
            return this.name;
        }
    };

    用工厂模式

    var CompoundObject={};
    CompoundObject.string1='default value',
    CompoundObject.createChildObject=function(){
        return{
            bool:true,
            num:10
        }
    };
    CompoundObject.childObject=CompoundObject.createChildObject();
    var compoundObjectClone=clone(CompoundObject);
    compoundObjectClone.childObject=CompoundObject.createChildObject();
    compoundObjectClone.childObject.num=5;

    例子中的clone函数

    function clone(object){
        function F(){}
        F.prototype=object;
        return new F;
    }

    掺元类:通过扩充的方式共享函数

    var Mixin=function(){};
    Mixin.prototype={
        serialize:function(){
            var output=[];
            for(key in this){
                output.push(key+':'+this[key]);
            }
            return output.join(',');
        }
    }
    function augment(receivingClass,givingClass){
        if(arguments[2]){
            for(var i=2,len=arguments.length;i<len;i++){
                receivingClass.prototype[arguments[i]]=givingClass.prototype[arguments[i]];
            }
        }
        else{
            for(methodName in givingClass.prototype){
                if(!receivingClass.prototype[methodName]){
                    receivingClass.prototype[methodName]=givingClass.prototype[methodName];
                }
            }
        }
    }
  • 相关阅读:
    神武
    position 属性
    C# 工作区和窗口的属性名
    魔兽世界命令行
    Dota2一直 正在登录服务器的解决办法
    dota2交换物品
    Servlet的5种方式实现表单提交(注册小功能)
    JQuery的ajaxFileUpload的使用
    JS日期转换
    Tomcat7后台通过get接收数据处理乱码
  • 原文地址:https://www.cnblogs.com/sdgjytu/p/4214336.html
Copyright © 2011-2022 走看看