高程中讲到:‘ECMAScript 中所有函数的参数都是按值传递’。

这就像把值从一个变量复制到另一个变量一样。

那引用类型的值也是像基本类型一样?

例子1:var person = {

name : "leaf"

};

function obj(o){

o.name = "kafu";

return o;

}

var result = obj(person);

console.log(result.name);// kafu

console.log(person.name);// kafu

怎么咋看结果都是看似引用类型的参数是按照引用传递的样子呢?

例子2:var person = {

name : "leaf"

};

function obj(o){

o = {

name : "kafu"

};

return o;

}

var result = obj(person);

console.log(result.name);// kafu

console.log(person.name);// leaf

区别:

例子一中,把person传到obj()中,其实就是把person对象的引用复制一份,传递给o(可以看成一个地址),person和o同时指向一个对象,o中修改那么属性,其实就修改了他们共同指向的对象的name属性。因为内存区此时就只有一个对象。

例子二种,o地址指向了另外新建的对象,此时内存中就有了两个对象,o指向的新对象的任意改变,对原来person指向的旧对象是没有什么影响的。

为什么说‘ECMAScript 中所有函数的参数都是按值传递’。

基本类型就不说了。

对于引用类型,参数的传递是传递对象的引用副本。相当于传递了一份拷贝之后的新地址,这拷贝地址其实也可以理解为按值传递(也叫共享传递)了。

利用对象作为参数传递

当用对象作为参数传递的时候,可以不用考虑参数的顺序,这点很有用。

php怎么传对象,js怎么传一个对象相关推荐

  1. Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换

    从零开始做了两个月多一点的.NET开发,期间经常遇到需要从Web前台传数据给后台处理的情况.比如下面(用了jQuery的Ajax Post),这里为了演示方便没有对参数进行encodeURICompo ...

  2. JS函数传参时:值传递与引用传递的区别

    JS函数传参时:值传递与引用传递的区别 一.先分析基础数据与复杂数据的区别 : 基本数据类型:Undefined.Null.Boolean.Number.String 引用数据类型:对象 如:var ...

  3. 对象存储HTML自定义属性,设置对象属性_对象存储服务 OBS_SDK参考_Node.js_上传对象_华为云...

    开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助.接口参考文档详细介绍了每个接口的参数和使用方法. 您可以在上传对象时设置对象属性.对象属性包含对象长 ...

  4. js文件夹上传到服务器,js 上传img到服务器

    jQuery插件之ajaxFileUpload 前端视图,HTML与JS代码,成功上传后,返回图片真实地址并绑定到的SRC地址lt;head>lt;script src="/jquer ...

  5. 前端图片压缩上传(纯js的质量压缩,非长宽压缩)

    前端图片压缩上传(纯js的质量压缩,非长宽压缩) 此demo为大于1M对图片进行压缩上传 若小于1M则原图上传,可以根据自己实际需求更改. demo源码如下: <!DOCTYPE html> ...

  6. node将当前文件上传到服务器,以编程方式将文件从node.js上传到另一个Web服务器...

    我需要将文件从node.js应用程序推送到其他地方运行的Web服务器,该服务器通过典型的上载机制接受文件.例如,假设接收服务器有一个网页,这样的形式:以编程方式将文件从node.js上传到另一个Web ...

  7. 收藏个支持进度条与文件拖拽上传的js File Uploader

    File Uploader:支持进度显示与文件拖拽的多文件上传前端JS脚本 分类: JavaScript 2012-03-11 19:20 2028人阅读 评论(11) 收藏 举报 目录(?)[+] ...

  8. vue路由传参 params传参不能传对象

    不能传对象,传对象的时候,刷新完数据会丢失 传递的是一个对象 但是: 跳转以后,刷新页面,数据会丢失,所以说不能传对象,会有问题

  9. 七牛云 vue 图片上传简单解说,js 上传文件图片

    七牛云 vue 图片上传简单解说,js 上传文件图片 一.七牛云简介 首次使用七牛云存储进行项目的图片存储,整了一上午才整明白,这些官方的教程把明白人也给说糊涂了,文档很不规范. 七牛云有免费的使用额 ...

最新文章

  1. SilverLight 双向绑定
  2. linux-Tcp IP协议栈源码阅读笔记
  3. 在PowerDesigner中设置字段唯一约束 --相当于unique
  4. SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行)
  5. JavaScript 面向对象编程(三) —— 函数进阶 / 严格模式 / 高阶函数 / 闭包 / 浅拷贝和深拷贝
  6. 网管,请别随意关闭默认共享
  7. Java游戏引擎libgdx的简介
  8. Kafka的消费语义
  9. HDOJ--1863--畅通工程
  10. ACS与目录服务器进行用户身份控制管理
  11. Android实现在线阅读PDF文件
  12. 将h.264视频流封装成flv格式文件(二.开始动手)
  13. 设置ie默认版本为ie7
  14. u盘计算机软件,USBoot(U盘启动盘制作工具)
  15. 什么是CIF/4CIF/QCIF/D1?
  16. 公众号被关注后怎么发送多条自动回复消息?可以插入外链吗?
  17. 基于c语言的学生档案管理系统设计实现
  18. ensp 双机热备 配置_【解忧番外篇】基于eNSP USG6000v的双机热备实验
  19. shell基础(2):编程基础之变量:全局/局部/环境变量(作用域、定义、操作)、位置参数、数组
  20. 气象历史数据和空气质量历史数据资源汇总免费

热门文章

  1. 【精华】非科班通往计算机之路的书籍天梯推荐
  2. 适合做平面设计的APP,分享给你们
  3. 精益管理之工厂企业执行精细化管理的日常管理八大要点
  4. 全球化同步时代,电子名片六大功能助你销售
  5. django框架开发-公司内部bug管理系统-全套源代码
  6. 外国人都喜欢中国的什么?
  7. AI时代,普通白领必用的软件机器人
  8. 计算机硬件的作用论文,计算机硬件的作用论文教案.doc
  9. 2020年下一个创业风口是什么?
  10. 自动出题抽取系统java_出题系统(java版)