js复制对象

<script type="text/javascript">

function getType(o)
{
var _t;
return ((_t = typeof(o)) == "object"
? o==null && "null" ||
Object.prototype.toString.call(o).slice(8,-1):_t).toLowerCase();
}
function
extend(destination,source)
{
for(var p in
source)
{
if(getType(source[p])=="array"||getType(source[p])=="object")
{
destination[p]=getType(source[p])=="array"?[]:{};
arguments.callee(destination[p],source[p]);
}
else
{
destination[p]=source[p];
}
}
}

/*
*******************************************************************************************************/
var
dataIndustry ={
getInsustryId: function(){ return
$("#insustryId").val()},
getName:function(){return
$(‘#name‘).val();},
getCode:function(){return
$(‘#code‘).val();},
getRank:function(){return
$(‘#rank‘).val();},
getIsLeaf:function(){return
$(‘#isLeaf‘).val();},
getDescription:function(){return
$(‘#description‘).val();},
getStatus:function(){return
$(‘#status‘).val();}
}

/*
*******************************************************************************************************/
debugger
;
alert("<font
color=‘red‘>1dataIndustry&emsp;</font>\n"+dataIndustry);
var
test={};
extend(test,dataIndustry);
test={};
//改变test属性
alert("<font
color=‘red‘>1dataIndustry&emsp;</font>\n"+dataIndustry);


alert(test);

</script>

js复制对象,布布扣,bubuko.com

时间: 2024-10-03 21:09:26

js复制对象的相关文章

js复制对象 和 节点类型

1. myList.cloneNode(true); 在参数为true的情况下,执行深复制,也就是复制节点及其整个子节点树,包括属性 2. myList.cloneNode(false); 在参数为false 的情况下,执行浅复制,即只复制节点本身,包括属性 cloneNode()方法不会复制添加到DOM 节点中的JavaScript 属性,例如事件处理程序等.这个方法只复制特性.(在明确指定的情况下也复制)子节点,其他一切都不会复制.IE 在此存在一个bug,即它会复制事件处理程序,所以我们建

JS 复制对象

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server&quo

笔记——JS的对象复制

JS的对象复制-- Js的Number类型和String类型都不是地址引用,而是重新创建对象复制值:var a = 1;var b = a;b = 2;alert(a);结果:1 var c = "abc";var d = c;d = "def";alert(c);结果:abc 只有对象类型才是地址引用的:var a = {x:1};var b = a;b.x = 2;alert(a.x);结果:2 所以复制对象不要用"=",而是遍历对象复制对象

js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)

在js中,我们经常复制一个对象,复制数据,那么就会有人问了,怎么复制,今天鹏哥就带来js中的复制方法. JS中对象分为基本类型和复合(引用)类型,基本类型存放在栈内存,复合(引用)类型存放在堆内存. 堆内存用于存放由new创建的对象,栈内存存放一些基本类型的变量和对象的引用变量. 至于堆内存和栈内存的区别介绍,你们可以百度看看. 下面开始讲解复制: 这种只是简单的变量,内存小,我们直接复制不会发生引用. var a=123; var b=a; a=123456; alert(a); //1234

javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法

javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法 前言 在js中,数组和对象的复制假设使用=号来进行复制.那仅仅是浅拷贝. 例如以下图演示: 如上.arr的改动,会影响arr2的值,这显然在绝大多数情况下,并非我们所须要的结果. 因此,数组以及对象的深拷贝就是javascript的一个基本功了. 数组的深拷贝 条条大道通罗马,实现数组的深拷贝.是有好几种方法的.举比例如以下: for 循环实现数组的深拷贝 for循环是很好用的.假设不知道高级方法.通过for循环可以完毕我们

js面对对象编程(二):属性和闭包

上篇博客中讲解了一些js对象的基本概念和用法,这篇博客讲解一下js属性方面的:公有属性,私有属性,特权方法. 如果学过java,公有属性,私有属性,特权方法(即可以访问和设置私有属性的方法)一定很熟悉,那么让我们来看看在js里如何实现呢? 1.公有属性 首先看公有的第一层意思是可以被大家所访问的,对外开放的属性,是相对于私有属性而言的: function Person(name,age){ this.name=name; this.age=age; this.getName=function()

js 复制 功能

<html> <head> <title>Zero Clipboard Test</title> <meta charset="utf-8"> </head> <body> <!-- 说明: 1.data-clipboard-target 输入要复制的对象的ID --> <button id="d_clip_button" class="my_clip_b

非指针 复制对象和数组的两种方法

JS在复制对象的时候,复制的是指针.有复制关系的两个对象,一个改变时另一个的值也跟着变了.数组也是对象,也存在这种现象. 实现对象的非指针复制的最简单方法: var obj2 = JSON.parse(JSON.stringify(obj1)); 原理就是利用JSON方法,先将对象obj1转成字符串,再解析为对象赋值给obj2.这样obj1和obj2就指向内存中的不同对象了,虽然值一样,但是检测 obj1==obj2 得到 false . 题外话:对象和数组的相等判断,得到的结果不是字面量一不一

js中对象的浅拷贝和深拷贝的区别

js中对象的浅拷贝和深拷贝的区别 浅度拷贝:复制一层对象的属性,并不包括对象里面的为引用类型的数据,当改变拷贝的对象里面的引用类型时,源对象也会改变. 深度拷贝:重新开辟一个内存空间,需要递归拷贝对象里的引用,直到子属性都为基本类型.两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性. 数据的类型: 一般数据(值传递):字符,数值,布尔,undefined 拷贝(复制)时,传递的是值,修改新数据,不会影响老数据 复杂数据(引用传递):对象 拷贝(复制)时,传递的是内存地址的