当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

js 知识点解决 - 前端小记

作者:小梦 来源: 网络 时间: 2024-07-11 阅读:

function 值传递

解决:什么时候什么样的参数传递,会修改外部参数。
1.参数传入function的过程,是一个值复制的过程。但是引用对象(object array function)保存的是,指针地址,所以传入的也是指针地址。这样,内存中就保持了两个相同的地址,指向同一个对象。

详细解释下:function 传参过程function change(config){  config.name = 'changed' }var obj = {name:"unchanged"}change(obj);调用function的时候,会进行参数的值传递。obj = 一个对象吗?错,是对象在堆里的内存地址,config = obj,是把对象的内存地址复制给config。这样config和obj指向同一个对象,config可以修改外部对象了
var obj1 = {    value:'111'};var obj2 = {      value:'222'};function changeStuff(obj){      obj.value = '333';      obj = obj2;      return obj.value;}var foo = changeStuff(obj1);console.log(foo);// '222' 参数obj指向了新的对象obj2console.log(obj1.value);//333

理解了这个,就理解了function里的传值了
参考文献:
解释的超级清楚: http://fehacker.com/2014/12/19/call-by-sharing/

热点阅读

网友最爱