我觉着我可能对这块有点误解,所以单独开个博说下自己的理解,当然是研究后的正解了。

1,参数传递是基本类型,看个例子:

function addTen(num){
num += 10;
return num;
} var count = 20;
var result = addTen(count);
console.log(count,result); //20 30

感觉这个都没啥好说的,基本类型传入函数后,函数内部参数生成一个参数副本,按值传入没毛病。

2,引用类型(一个对象)当作参数传入函数后呢?

function setName(obj){
obj.name = 'miya';
}
var person = new Object();
setName(person);
console.log(person.name) //miya

在这个例子里面,obj和person指向的是同一个对象,当obj上面添加name属性时候,外面的person也有所反应。那这就说明:参数是按引用传递进来的?不是的呦,它传递进来的数据其实是person的内存地址,所以说是按值传递的。因为修改了同一个内存,所以外面的person也变了。不信看下面的例子:

function setName(obj){
obj.name = 'miya';
obj = new Object();
obj.name = 'jone'
}
var person = new Object();
setName(person);
console.log(person.name); //miya

唯一区别是在函数内部给obj对象重新赋值了一个对象,首先person的内存地址传递进来后,添加name属性,而后obj重新指向另外一个新对象,给新对象添加属性。所以现在obj引用的是另外一个局部对象了。person的name值仍然是miya。

所以这里的“按值传递”的,引用类型传递进来传递的是它的内存数据(值)。

可以把javascript的函数的参数想象成局部变量。

【完】

温故而知新,可以为师矣。

js中所有函数的参数(按值和按引用)都是按值传递的,怎么理解?的更多相关文章

  1. 深入理解python中函数传递参数是值传递还是引用传递

    深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用 ...

  2. js中获取函数的参数

    刘海波 2015/2/11 9:11:43 tmp = tmp.replace(/\{(\d+)\}/g, function($1, $2) {return addrow.arguments[pars ...

  3. JS中给函数参数添加默认值(多看课程)

    JS中给函数参数添加默认值(多看课程) 一.总结 一句话总结:咋函数里面是可以很方便的获取调用函数的参数的,做个判断就好,应该有简便方法,看课程. 二.JS中给函数参数添加默认值 最近在Codewar ...

  4. MySQL中Count函数的参数该传入什么样的值?

    MySQL中Count函数的参数该传入什么样的值? 查询用户表中总记录 用户表中信息如下: 1.SELECT COUNT(*) FROM USER 结果为:3条 2.  SELECT COUNT(us ...

  5. JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype

    一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); // ...

  6. js中的函数,Date对象,Math对象和数组对象

    函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...

  7. JS中的函数、Bom、DOM及JS事件

    本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的 ...

  8. node.js 中回调函数callback(转载),说的很清楚,看一遍就理解了

    最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(fu ...

  9. JS中的函数、BOM和DOM操作

     一.JS中的函数 [关于注释] /** [文档注释]:开头两个*.写在函数上方,在调用函数时可以看到文档上方的描述信息. */   // 单行注释 /* 多行注释 */ 1.函数的声明及调用 (1) ...

随机推荐

  1. jquery JavaScript如何监听button事件

    下面的html页面中有两个按钮 <div class="layui-tab-item layui-show"> <form class="layui-f ...

  2. shiro遇到的坑-重写sessionManager遇到的坑

    最近公司开发一个微信小程序项目加shiro的项目.因为微信小程序是不使用cookie,使用的是 storage .那么我们就不能使用传统的方式来保持登录状态了. 1.首先和网上的一样,先重写一个Ses ...

  3. 关于用struts2框架中iframe对应的jsp页面的不到action的值的问题

    我们做web项目经常会用到frameset.frame以及iframe,这大大方便了我们页面的构建以及模块功能的划分.但是,再使用这些技术的同时也会遇到各种各样的问题,其中一个就是子页面中得不到str ...

  4. QT中的QQueue类、C++中的queue类

    C++中的queue 实现一种先进先出的数据结构,是一个模板类 头文件 #include<queue> queue<int> Q; //定义一个int型队列 Q.empty() ...

  5. PyCharm4.5 中文破解版破解步骤

    1.在下载之家下载PyCharm4.5中文版软件包,然后右击软件安装包选择解压到“pycharm4.5.3”. 2.在解压文件夹中找到pycharm-professional-4.5.3,右击打开. ...

  6. Python使用pycharm导入pymysql(MySQL)或pymssql(SQLServer)

    file->setting->project->project interperter,双击右侧出现的pip,弹出安装包,搜索pymysql->选择第一个->Instal ...

  7. Filter 中注入失败问题

    参考: https://www.cnblogs.com/digdeep/p/4770004.html?tvd https://www.cnblogs.com/EasonJim/p/7666009.ht ...

  8. 再举个webstrom 正则应用例子。

    要将 "_behavior_chineseobj":{ "场所内网IP地址":"IP_ADDRESS", "源外网IPv4地址&q ...

  9. whip|resist|patch|intimate|

    a piece of leather or rope that is fastened to a stick, used for hitting animals or people 鞭子,皮鞭 She ...

  10. 林轩田机器学习基石笔记2—Learning to Answer Yes/No

    机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...