js对象引用传递

今天写接口测试demo,发现js值引用问题

js 普通变量为值传递
js 对象为为引用传递
var a = 123;
undefined
var b=a;
undefined
a
123
b
123
b =234
234
a
123
a = 456
456
b
234
var o = {name:‘lxb‘,age:21}
undefined
h = o
Object { name: "lxb", age: 21 }
h.width = 20
20
o
Object { name: "lxb", age: 21, width: 20 }

解决方案

function Dog(name, breed, color, sex) {
   this.name = name;
   this.breed = breed;
   this.color = color;
   this.sex = sex;
}

theDog = new Dog("Gabby", "Lab", "chocolate", "girl");

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource

时间: 2024-10-12 05:06:57

js对象引用传递的相关文章

深度克隆---js对象引用

首先,我们要知道,javascript中除了基本类型(number,string,boolean,null,undefined)之外就是引用类型了,也可以说就是js对象了. 引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响. 在探讨到深度克隆之前,我们先来看一下下面的例子: example01: 1 var a = [1,2,3]; 2 var b = a; // a b共用一个引用 3 b.push(4); 4 alert(b); // [1

anuglar.js ui-router传递参数

anuglar.js ui-router 传递参数的方法有: 一: ui-sref 传递参数,传递一个参数的时候 首先路有这样写: .state('edit', { //线路编辑页面 url: '/edit?id', templateUrl: 'view/template/shopList/edit.html', controller: 'editCtrl' }) html 页面写法为: <button ui-sref="edit({id:{{item.id}}})" type=

JS URL传递中文参数时出现乱码的处理

原文:JS URL传递中文参数时出现乱码的处理 在浏览器中显示的地址是这样的: 但是按F12调试的时候的地址却变化掉了: 这个肯定是是因为浏览器对url路径默认编码了.这个问题是在我们去取值的时候,得到的就是后面那一大串稀奇古怪的东西.得不到我们想要的值.怎么办呢?这里写出来的只是自己的解决方法,也许不能通用,跟大家分享下,有更好的方法,告我一声.      //得到url中的值 function request(paras){ var url = location.href; var para

Js前端传递json数组至服务器端并解析的实现。

最近做的一个小项目中需要将json数组数据传递到服务器端进行保存,现分享一下解决思路. 环境:EasyUi+Mvc 4.0 如下: 在上述截图中的红色圈起来的部分,需要在点击保存后通过一次ajax请求,完成数据保存. 很多项目都存在这样的需求,所以了解解决办法很重要. 分析过程: 红色圈起部分分两块,一块是图片,包含字段“图片路径”和“图片说明”,可以推断出json数据格式{'图片路径':xxx,'图片说明':xxx}. 一块是子物料集合,包含字段“子物料编号”和“备注”,可以推断出json格式

JS函数传递字符串参数(符号转义)

原文链接:https://blog.csdn.net/Myname_China/article/details/82907965 JS函数传递字符串参数,如果没有转义处理,在接收的时候无法正确的接收字符串. 在双引号内 <a href="javascript:orderDetails(\''+orderId+'\')">查看详情</a> <a href="javascript:void(0)" onclick="orderDe

js函数传递参数时,如果是路径类型的参数,里边包含:&#39;\&#39;字符报错

在函数中,传递的参数中有“\”字符,js会将它默认为转义字符串,如果没有出现与他匹配的转义字符串,就会缺失,例如: 将这样的一个字符串作为一个参数:C:\Program Files (x86)\MySQL\MySQL Server 5.7\data\ 传递到函数里边的值就会被默认转化为:C:Program Files (x86)MySQLMySQL Server 5.7data 如果要实现这个参数的精确传递,就需要将字符串进行处理,一般会有两种方式: ①:将字符串里边的 ‘\’ 字符替换成 ‘/

webpages框架使用@razor语法向js代码传递Json字符串

进入web开发时间太短,一个人尝试着做了几个初级项目,遇到了太多的困难.尽管不是学开发专业的,仅为爱好所以硬着头皮坚持了下来. 将遇到的问题记录下来,备查. 使用vs2015中asp.net razor3网站模板作为基础逐渐扩展,遇到了服务器传递回js的Json字符串错误. 错误表现:原本字符串中的转义字符  \"   ,通过 @变量名 传递到js代码中,变成了 " 在网上检索了一下,遇到这个问题的不多,应该是初级错误: 看了一篇文章,其原因如下:为了防止某些攻击,系统将敏感字符进行了

再议js的传递和深复制

病理 基本类型的传递就是按值传递,比如说 var a = 1; var b = a; b = 3; console.log(a,b);//1,3 很明显,a的值并未因为b的值改变而变化,这是因为a只是给了b一个副本.在这就不详细描述了.下面才是重点 let obj = {x:1}; let o = obj; o.x = 2; console.log(obj.x);//2 已经被改动了 对此我在前面的 js函数参数的传递 中有具体介绍,在这就不多说了. 对症下药 毛主席说过,遇事莫要急,碰到问题就

JS AJAX传递List数组到后台

http://blog.csdn.net/lingxyd_0/article/details/10428785 今天在写代码的时候,碰到的问题,百度了一下,发现原来AJAX传递List数据是可以的,之前还一直用JSON序列化(new Array()数组设置)进行传值的. var _list = {}; //等价于 var _list=new Object(); for (var i = 0; i < 10; i++) { _list["后台controller中的接收名字[" +