JavaScript对象复制(二)】的更多相关文章

在JavaScript很多人复制一个对象的时候都是直接用"=",因为大家都觉得脚本语言是没有指针.引用.地址之类的,所以直接用"="就可以把一个对象复制给另外一个对象,如下代码: var i1 = 1; var i2 = i1; i2 = 2; alert("i1:"+i1+",i2:"+i2); 输出结果:i1:1 , i2:2 但可能没有发现,这种“复制”用在对象(object)类型是“错误”的,因为这只是把对象的地址复制…
此文来记录学习笔记: 今天继续说Ext.Array,Ext.Function,Ext.Date,Ext.Error ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Ext.Ar…
近期项目因为怕数据污染所以用到了js的对象复制 js里的对象都是继承自object,是引用类型,所以无法通过=号复制 所以整理了一些常用的复制方法,如下 一.通过JSON序列化和反序列化创建新的对象 var obj = { a: 1, b: '2' }; var newObj = JSON.parse(JSON.stringify(obj)); 测试一下: obj.a = 3;//obj和newObj指向了不同的引用,所以newObj的b属性并不会变化 console.log(newObj);c…
<script> function copy(a) { ret = {}; for (sth in a) { temp = a[sth]; if (temp instanceof Array) { var ddddd = []; for (i in temp) { var b = copy(temp[i]); ddddd = ddddd.concat(b); } ret[sth] = ddddd; } else { ret[sth] = a[sth]; } } return ret; } co…
对象object  例子一: var car = { "wheels":4, "engines":1, "seats":5}; 例子二: var Car = function() { this.wheels = 4; this.engines = 1; this.seats = 1;};//构造函数 调用构造函数 var Car = function() {this.wheels = 4;this.engines = 1;this.seats =…
如果对象只是一个数据集,可采用json化再反json化的方式克隆一个对象,这个过程会丢失对象的方法.效率比较低. 可以采用如下递归的方式复制一个对象. function clone(target) { var buf; if (target instanceof Array) { buf = []; //创建一个空的数组 var i = target.length; while (i--) { buf[i] = clone(target[i]); } return buf; }else if (…
一.数据类型分类: 基本变量 引用类型 二.什么叫做指针指向 栈内存.堆内存.指针指向(如下红圈圈的斜线). 三.赋值.拷贝.引用区别? 赋值指一个变量赋予某个值,包含两种方式,一种是直接量,另一种,是将另一个变量的值传递给这个变量.拷贝和引用都属于后者. 引用的目的是将指针指向相同堆内存中的某一位置. 拷贝的目的是改变指针的指向,并且内部属性或者元素的值相等.基础数据类型在赋值过程就改变了指针指向,所以通常说,基础类型的引用只存在只读状态.复杂数据类型的指针指向包含两种一种是指针指向栈内存,另…
组合使用构造函数和原型模式创建对象 function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.friends = ["Shelby", "Court"]; } Person.prototype = { constructor: Person, sayName : function () { alert(this.name); } }; var per…
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div,for循环绑定事件. 示例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>闭包</title> <style type="…
目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符,而不能是字符串或者表达式,属性值可以是除undefined外的任何值.如果对象的属性值是函数,那么这个属性通常被称为方法.一般来说,对象可以通过直接量方式或者构造函数方式创建的,那么下面我用代码的方式更直观的展示对象的实现方式.(console.log在IE中无法工作,需要firefox或者Chr…