《设计模式 》 - 4. 原型模式( Prototype )

来源:互联网 发布:ubuntu挂载nfs 编辑:程序博客网 时间:2024/05/13 12:55

原型模式 ( Prototype ) :

语言 : JavaScript

JavaScript 克隆方法 :

function clone(obj) {    if (null == obj || "object" != typeof obj)    {        return obj;    }    // Date    if (obj instanceof Date)    {        var copy = new Date();        copy.setTime(obj.getTime());        return copy;    }    // Array    if (obj instanceof Array)     {        var copy = [];        var len = obj.length;        for (var i = 0; i < len; ++i)        {            copy[i] = clone(obj[i]);        }        return copy;    }    // Object    if (obj instanceof Object)     {        var copy = {};        for (var attr in obj)        {            if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);        }        return copy;    }    throw new Error("Unable to copy");}

客户类 :

var person = {    name : "小明",    age : "15",    eat : function(){        console.log("eating");    }}var clonePersonA = clone(person);console.log(clonePersonA);clonePersonA.eat();

代码图示 :
这里写图片描述

结果显示 :

这里写图片描述

1 0
原创粉丝点击