`
zhudeming
  • 浏览: 64015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义javascript的clone方法

阅读更多
在网上找到的clone方法代码:
方法一:定义一个clone方法来实现。
function clone(myObj){
    if(typeof(myObj) != 'object')
        return myObj;
    if(myObj == null)
        return myObj;
    var myNewObj = new Object();
    for(var i in myObj)
        myNewObj[i] = clone(myObj[i]);
    return myNewObj;
}


方法二:通过object原型扩展实现。
Object.prototype.Clone = function()
{
    var objClone;
    if ( this.constructor == Object ) objClone = new this.constructor();
    else objClone = new this.constructor(this.valueOf());
    for ( var key in this )
     {
        if ( objClone[key] != this[key] )
         {
            if ( typeof(this[key]) == 'object' )
             {
                 objClone[key] = this[key].Clone();
             }
            else
             {
                 objClone[key] = this[key];
             }
         }
     }
     objClone.toString = this.toString;
     objClone.valueOf = this.valueOf;
    return objClone;
}



分享到:
评论

相关推荐

    深入理解JavaScript中的对象复制(Object Clone)

    在使用自定义的clone方法时,还需要对一些特殊类型进行处理,例如日期(Date)、数组(Array)和普通对象(Object)。对于日期类型,可以通过创建一个新的日期实例并设置相同的毫秒值来实现复制;对于数组类型,则...

    javascript中clone对象详解.docx

    在JavaScript中,有多种方法可以实现对象的克隆,这里我们将重点讲解使用自定义函数实现的克隆方法。 首先,我们可以使用`JSON.parse()`和`JSON.stringify()`这对组合来克隆简单对象,但这并不适用于包含函数或循环...

    深化理解JavaScript中的对象复制(Object Clone)_.docx

    2. **自定义`clone()`方法**:我们可以为对象添加一个`clone()`方法,递归地复制所有属性。 ```javascript Object.prototype.clone = function() { var copy = (this instanceof Array) ? [] : {}; for (let attr...

    javascript中clone对象详解

    在JavaScript中,克隆对象的方法主要有以下几种。 一种简单的方法是使用JSON的stringify和parse方法。这种方法的核心思想是将对象转换成JSON格式的字符串,然后再将这个字符串解析回对象,从而实现克隆。例如: ``...

    custom-methods-js:具有自定义构建JavaScript方法的JSON对象。 该方法为解决常见的js问题提供了一种更方便,更优雅的方法

    具有自定义构建JavaScript方法的JSON对象。 这些方法为解决常见的js问题提供了一种更方便,更优雅的方法。 安装:git clone 从'./custom-methods-js/customMethods'导入; 用法:am.methodName(array);

    前端开源库-better-clone

    总之,`better-clone` 是前端开发中的一个重要工具,它解决了 JavaScript 原生克隆方法的局限性,提供了更强大的深拷贝功能,适用于处理复杂的数据结构。了解并熟练使用这个库,可以提升开发效率,保证代码质量。

    前端开源库-lutils-clone

    JavaScript的内置`Object.assign()`方法可以实现浅拷贝,但当对象包含嵌套的对象或数组时,这种方法就无法满足需求,因为它们共享了相同的引用。深拷贝则会创建一个全新的对象,其内容与原始对象相同,但所有层级的...

    CR-Clone:Unity 3D 中的自定义机器人克隆

    本项目“CR-Clone”专注于在Unity环境中实现自定义机器人的克隆,利用JavaScript(Unity中的Legacy JavaScript,也称为JS或UnityScript)作为主要编程语言。 一、Unity 3D与JavaScript基础 Unity 3D是一个跨平台的...

    select option带自定义图片

    然而,原生的`<option>`元素并不支持直接添加图片,但通过一些JavaScript和CSS的技巧,我们可以实现自定义带有图片的`<option>`效果。以下是一个关于如何在`<select>`和`<option>`中添加自定义图片的详细教程。 ...

    改造之后的fullCalendar(改事件背景、标题自定义、无星期、左右按钮)

    fullCalendar是一款广受欢迎的JavaScript日历插件,它能够方便地在网页中展示日程安排和事件管理。通过对原版fullCalendar进行改造,我们可以实现更加个性化的功能,如改变事件背景色、自定义事件标题、去除星期显示...

    selectFile.js:一个让您自定义浏览按钮JavaScript函数

    一个让您自定义浏览按钮JavaScript函数 介绍 一个JavaScript函数,可让您自定义浏览按钮及其选择文本。 众所周知,浏览按钮<input type=file>不能直接自定义。 此功能仅使用普通输入按钮作为触发器来模拟此...

    javascript_jquery-3.3.1.rar

    `.fadeIn()`, `.fadeOut()`, `.slideToggle()`, `.animate()` 等方法可以轻松实现淡入淡出、滑动、自定义动画等效果。 **Ajax交互** jQuery 的 `.ajax()` 方法简化了异步数据请求,支持XMLHttpRequest和JSONP。...

    JavaScript对象拷贝与Object.assign用法实例分析

    在JavaScript中,通过简单赋值或使用`Object.assign()`方法可以实现浅拷贝。例如: ```javascript let objA = {name: '对象A', content: '我是A'}; let copyA = objA; ``` 在这个例子中,`copyA`只是`objA`的一个...

    Windows JavaScript 库的 Visual Studio 扩展 v1.10.2官方版.zip

    WinJS 所提供的实用工具包含一系列功能,开发者可使用这些功能来在您的应用中创建自定义的控件。 WinJS是一个JavaScript工具包,允许开发者使用HTML/JS/CSS技术构建应用,其特性有: 支持Windows 8.1、Xbox One、...

    threes-js-clone:Threes 的 Javascript 克隆

    这些都可能通过额外的JavaScript库或自定义代码实现。 总的来说,"threes-js-clone"项目是一个全面展示JavaScript游戏开发的实践案例。通过研究和理解这个克隆项目,开发者不仅可以掌握JavaScript的基本语法和高级...

    不得不分享的JavaScript常用方法函数集(下)

    7. 克隆对象:使用jQuery的clone方法可以复制选定的元素,创建一个元素的副本,并可以对其执行其他操作。 8. 使元素居屏幕中间位置:通过编写一个jQuery的插件函数center,可以使选定的元素在页面上水平垂直居中。 ...

    jquery列表拖动排列自定义拖动层排列

    在IT行业中,jQuery是一款非常流行的JavaScript库,它简化了...通过以上方法,你可以创建一个用户友好的、允许自定义拖动层排列的jQuery列表拖动应用。这不仅提高了用户交互性,也为数据排序提供了一种直观的解决方案。

    JavaScript_开发者经常忽略或误用的七个基础知识点.

    - `sort`方法不仅可以对数字数组进行排序,还可以对复杂的数据结构进行自定义排序。例如,对对象数组按某个属性排序: ```javascript [ { name: "Robin Van PurseStrings", age: 30 }, { name: "Theo Walcott",...

Global site tag (gtag.js) - Google Analytics