
JS函数传参方法如下:
对于基本类型来说,其复制的是被复制变量在栈中的值,即创建了一个副本,对其中任何一个变量的改变都不会影响另外一个变量;对于引用类型来说,其复制的是被复制变量在栈中的值,但是这个值所存储的是变量指向到堆中的对象的指针,即该对象所存储的地址,复制后的变量虽然也是一个副本,但是却指向了与被复制的变量的同一个在堆中的对象。对其中任何一个变量所做的改变都会影响都会影响另外一个变量。函数的传参,js中所有函数的参数都是按值来传递的
实际上,这种传参实际上做的就是把变量的值复制给函数内部的临时变量(这个临时变量其实也有一个专门指向他们的数组,就是常用于模仿重载的arguments数组),所不同的就是对于基础数据类型来说,复制的就是传人参数在栈中的值,而引用类型复制的是参数在栈中的值,而这个值保存的是一个指向堆中地址的指针。
创建了另外一个对象,所做的任何的改变都不会影响带另外一个对象,因为它与参数所指向的对象是完成不同的对象。
这个display是当前空间自身,相当于this
onclick可以动态传参
Html代码
复制代码 代码如下:
<body>
<input id="certid" type="text" value="123456" >
<input id="btn" type="button" value="button" onclick="">
</body>
Javascript代码
复制代码 代码如下:
<script>
function show(value1,value2)
{
alert(value1+","+value2);
}
var i = 10;
btnonclick = function(){
show(certidvalue,i);
};
<script>
这样就实现了动态给onclick事件句柄赋值,并支持参数的传递
详细出处参考:http://wwwjb51net/article/35107htm
函数的参数是在函数内部可用的,是局部变量
但如果参数是个数组或对象(引用类型),则函数内部是可以影响到外部传参之前的变量的值
JavaScript函数传参传递的仍然是值传递,而不是引用传递
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)