javascript的参数传递

//一直以为js中有两种传递方式:按值传递,和按引用传递;看到有的说js只有一种传递方式按值传递;
//自己虽然之前有使用但是一直没有细化;今天群里回答被打脸了特意细化了一下;
var obj = {"a":"b"};
function change(obj){
    return obj.a =  "c";
    //将obj传递进来,类似于 obj.a = "c"; retrun obj;
}
change(obj);
consonle.log(obj); => {a:"c"};
function transfrom(obj){
    return obj = {"a":"e"};
    //这里改变了对象的指针;但是只有在此函数内生效;外部obj的指向没有改变;很类似于
    //var  a = 1;
    //function alter(a){
    //   var  a = 2;
    //   return a;
    //}
}
console.log(obj); => {a:‘c‘};
function alter(value){
    return value =  "d";
    //类似于 var value = obj.a;
    //然后将value传递进来;和obj已经没有关系;
}
}
alter(obj.a);
console.log(obj); => {a:"c"};
时间: 2024-10-10 20:43:09

javascript的参数传递的相关文章

JavaScript 函数参数传递到底是值传递还是引用传递

tips:这篇文章是听了四脚猫的js课程后查的,深入的理解可以参看两篇博客: JavaScript数据类型--值类型和引用类型 JavaScript数据操作--原始值和引用值的操作本质 在传统的观念里,都认为JavaScript函数传递的是引用传递(也称之为指针传递),也有人认为是值传递和引用传递都具备.那么JS的参数传递到底是怎么回事呢?事实上以下的演示也完全可以用于Java 首先来一个比较简单的,基本类型的传递: function add(num){ num+=10; return num;

javascript函数参数传递是值传递还是引用传递?

网上对于js的函数参数传递方式众说纷纭,这里也是自己在网上挑选了比较好的解释: js和java是比较相像的,懂得java中的参数传递方式理解js就不难. 如果说一个变量的值是绝对的基本类型变量如: function add(num){ num+=10; return num; } num=10; alert(add(num)); aelrt(num); //输出20,10 这种结果应该大家都没有任何意义,基本类型变量的值本身就是不可改变的,变的是参数地址.就算变量a和b的值都是10但是二者并没有

学习笔记:JavaScript传参方式———ECMAScript中所有函数的参数都是按值传递

我们把命名参数(arguments)视为局部变量,在向参数传递基本类型值时,如同基本类型变量的复制一样,传递一个副本,参数在函数内部的改变不会影响外部的基本类型值.如: 1 function add10(num){ 2 num += 10 ; 3 return num ; 4 } 5 var count = 10 ; 6 var result = add10(count); 7 alert(count);// 10 8 alert(result); //20 在向参数传递引用类型的值时,会把这个

JavaScript入门培训材料(Copy至此以作备份)

JavaScript简明学习教程 2014年5月31日 目录 一.说明... 2 二.准备知识... 2 (一)HTML. 2 (二)DOM.. 3 三.JavaScript简介... 3 四.JavaScript的运行... 4 五.基本语法... 4 (一)变量... 4 1.变量的声明... 5 2.变量的类型及类型转换... 6 3.变量的作用域... 7 (二)基本数据类型... 9 1.数值类型... 9 2.字符串类型... 9 3.布尔类型... 9 4.undefined和nu

Octopus系列之一些问题的汇总

1._WidgetCart.html中的数量更新函数和删除函数,转移到MyShoppingCart.html中出错 如果你使用的是jQuery的方式banding函数 比如change 和click,那么在MyShoppingCart中是无法 使用的,因为_WidgetCart是通过ajax方式加载过来的 而在_WidgetCart中并没有引入jQuery文件.MyShoppingCart文件加载完毕之后,_WidgetCart并没有加载完毕,所以 //alert($("select[name=

JavaScript高级 面向对象(12)--引用类型值类型作为参数传递的特性

说明(2017-4-2 18:27:11): 1. 作为函数的参数,就是将函数的数据拷贝一份,传递给函数的定义中的参数. 函数foo()在调用的时候,做了两件事: (1)函数在调用的时候,首先需要将参数中的数据拷贝一份,即数字123拷贝一份. (2)跳转到函数的定义中(函数体),在此之前完成了函数的赋值,即num=123. (3)正式的进入函数内,准备执行函数的每一句话. 1 function foo(num){} 2 var a = 123; 3 foo(a); 2. 值类型作为函数参数传递的

Javascript中值的访问与参数传递问题

数据类型 在 javascript 中数据类型可以分为两类: 原始数据类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就是对象类型 Object type,比如Object,Array,Function,Date等. 声明变量时不同的内存分配 原始值:存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置.这是因为这些原始类型占据的空间是固定的,所以可将他们存储在较小的内存区域 – 栈中

JavaScript 参数传递与变量复制

ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 5 种基本数据类型: Undefined. Null. Boolean. Number 和 String.这 5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值. 引用类型的值是保存在内存中的对象.与其他语言不同, JavaScript 不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间.在操作对象时,实际上是在操

再次学习javascript中的参数传递

javascript中的所有函数的参数传递都是按照值传递的,做了下面测试: function addTen(num){ num +=10; return num; } var count = 20; var result = addTen(count); alert(cont); //20 alert(result); //30 好吧,上面只是做了基本类型的传递,再做个引用类型的传递看看: function setName(obj){ obj.name="Mark"; } var pe