js对象的引用】的更多相关文章

先来看一个例子 例一: var a=[1,2,3]; var b=a; b.push(4); alert(b);//1,2,3,4 alert(a);//1,2,3,4 var a=[1,2,3]; var b=a; b=[1,2,3,4] alert(b);//1,2,3,4 alert(a);//1,2,3 这两种方法得出的结果是不一样的. 第一个程序,是对象的引用, 把a的值附给b,a与b之间是引用的关系,当两者之间是引用的关系时,改变任一变量,都会影响另一个变量. 第二个程序,只是对b的…
<script> //递归 function test(n) { if (n == 1) { return 1 } console.log(n) return n * test(n - 1) } console.log(test(3)) </script> var obj={ obj1:{ obj2:{ obj3:{ obj4:{ name:'liujin' } } } } } function fn(o){ if(typeof o != 'object'){ return o;…
目录 一.场景 二.浅拷贝 三.深拷贝 一.场景 除了基本类型跟null,对象之间的赋值,只是将地址指向同一个,而不是真正意义上的拷贝 将一个对象赋值给另外一个对象. var a = [1,2,3]; var b = a; b.push(4); // b中添加了一个4 alert(a); // a变成了[1,2,3,4] 自定义对象 var obj = {a:10}; var obj2 = obj; obj2.a = 20; // obj2.a改变了, alert(obj.a); // 20,o…
/*var a = [1,2,3]; var b = [1,2,3]; alert( a == b ); //false*/ //基本类型:赋值的时候只是值得复制 /* var a = 5; var b = a; b+=3; alert(b); alert(a);*/ //对象类型:赋值的时候不仅是值的赋值,而且还有地址的传递. /* var a = [1,2,3]; var b = a; //a和b住一起了,都存了[1,2,3] b.push(4); alert(b); alert(a);*/…
一.js对象的创建 1.普通最简单的方式 var teacher = new Object( ); teacher.name = "zhangsan"; teacher.age = 35; teacher.job = "教师"; teacher.say = function( ) {     return this.name + this.age + this.job;        //this代表的是teacher下的作用域 }; console.log(tea…
JavaScript高级程序设计-第3版-中 有这么一段话: 在操作对象时,实际上是在操作对象的引用而不是实际的对象.为此,引用类型的值是按引用访问的①. ① 这种说法不严密,当复制保存着对象的某个变量时,操作的是对象的引用.但在为对象添加属性时,操作的是实际的对象. 这里的重点是①的注释,初次看的时候没有理解,后来理解了,举个例子: 先看①的前半句,比较好理解: 当复制保存着对象的某个变量时,操作的是对象的引用. var a = { n: 2 }; //这里把 { n: 2 } 赋值给 a,实…
js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascript中,已经存在一些标准的类,例如Date.Array.RegExp.String.Math.Number等等,这为我们编程提供了许多方便.但对于复杂的客户端程序而言,这些还远远不够. 与Java不同,Java2提供给我们的标准类很多,基本上满足了我们的编程需求,但是Javascrip…
在JavaScript很多人复制一个对象的时候都是直接用"=",因为大家都觉得脚本语言是没有指针.引用.地址之类的,所以直接用"="就可以把一个对象复制给另外一个对象,如下代码: var i1 = 1; var i2 = i1; i2 = 2; alert("i1:"+i1+",i2:"+i2); 输出结果:i1:1 , i2:2 但可能没有发现,这种“复制”用在对象(object)类型是“错误”的,因为这只是把对象的地址复制…
js中除数字.字符串.布尔值.null值.undefined之外都是对象. 对象是属性的容器,属性包含属性名和值,属性名可以是包括空字符串在内的任意字符串(个人想法还是使用js标识符好,省的麻烦),值可以是除undefined外任何值. 对象是class-free的,对新的属性键值没有限制. 对象可以套嵌,允许继承. 对象字面量: 对象字面量提供了非常方便创建新对象值得方法. //空对象 var empty_object = {}; //多个键值对 var object1 = { "first-…
一.对象 除了字符串.数字.true.false.null和undefined之外,javascript中的值都是对象. javascript对象属性包括名字和值,属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性. 属性名可以是javascript标示符也可以是字符串直接量,属性名字里用空格或者连字符"-",必须要用字符串表示. 三类javascript对象和两类属性: 内置对象(native object)是有ECMAScript规范定义的对象种类.例如,数组…