[Javascript] 函数参数讨论
来源:互联网 发布:拖欠淘宝贷款一年 编辑:程序博客网 时间:2024/05/20 17:27
自己的学习小结,可能会有错误,欢迎指正。
函数参数包括:基础类型变量、数组、函数、对象,函数怎么传递参数的?哪些是传值,哪些是传址?下面说的参数均为局部变量。
*传值特点:你变我不变
*传址特点:你变我也变
1.基础类型变量: 传值
2.数组:可以传值也可以传址
3.函数:传址
4.对象:传值
测试代码如下
1.基础类型变量做参数,传的是变量值,因此你变我不变
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){ $("p").click(function(){ testMain(); });});function addFirst(i) { i++; return i;}function change(addFirst, a) { var b = addFirst(a); return b;}function testMain() { j = 0; alert(change(addFirst, j)); alert(j);}</script></head><body><p>如果您点击我,我会消失。</p><p>点击我,我会消失。</p><p>也要点击我哦。</p></body></html>
2..数组
a. 函数名作为参数,传的是地址,因此你变我也变,arr[0]从1变为‘Aug’
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){ $("p").click(function(){ testMain(); });});function change(arr) { arr[0] = 'Aug';}function testMain() { var arr = [1,2,3,4,5]; change(arr); alert(arr[0]);}</script></head><body><p>如果您点击我,我会消失。</p><p>点击我,我会消失。</p><p>也要点击我哦。</p></body></html>
b. 具体某个数组值作为参数,传的是变量值,因此你变我不变
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){ $("p").click(function(){ testMain(); });});function change(a) { a = 'Aug';}function testMain() { var arr = [1,2,3,4,5]; change(arr[0]); alert(arr[0]);}</script></head><body><p>如果您点击我,我会消失。</p><p>点击我,我会消失。</p><p>也要点击我哦。</p></body></html>
c. 如果希望一次性传递数组的多个值,且不改变原来数组的值,可采用先arr.join(',')转换成字符串如’1,2,3‘作为参数,在函数里str.split(','),
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){ $("p").click(function(){ testMain(); });});function addFirst(i) { i++; return i;}function change(addFirst, str) { var b = addFirst(str.split(',')[0]); return b;}function testMain() { var arr = [1,2,3];change(addFirst, arr.join(',')); alert(arr.join(',')); }</script></head><body><p>如果您点击我,我会消失。</p><p>点击我,我会消失。</p><p>也要点击我哦。</p></body></html>
3.函数作为参数,参数的是函数名,是传址
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){ $("p").click(function(){ testMain(); });});function addFirst(i) { i++; return i;}function change(addFirst, a) { var b = addFirst(a); return b;}function testMain() { var arr = [1,2,3,4,5]; alert(change(addFirst, 1));}</script></head><body><p>如果您点击我,我会消失。</p><p>点击我,我会消失。</p><p>也要点击我哦。</p></body></html>
4.函数参数为对象,传的是地址,因此你变我也变:一开始stu赋值为‘Mike’, 调用‘rename(stu,‘Luck’)’后,stu名称变为'Luke'
<!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js"></script><script>$(document).ready(function(){ $("p").click(function(){ testMain(); });});function Stu(name) { this.name = name;}Stu.prototype.setName = function(name) { this.name = name;}Stu.prototype.getName = function() { return this.name; }function rename(stu, name) { stu.setName(name);}function testMain() { var stu = new Stu('Milke'); rename(stu, 'Luck') alert(stu.getName());}</script></head><body><p>如果您点击我,我会消失。</p><p>点击我,我会消失。</p><p>也要点击我哦。</p></body></html>
0 0
- [Javascript] 函数参数讨论
- JavaScript函数参数以及变量声明讨论
- 指针作为函数参数的讨论
- python函数中各类参数的讨论
- javascript 函数参数 个数
- javascript获取函数参数
- JavaScript函数参数个数
- Javascript函数参数
- JavaScript函数参数个数
- javascript函数参数
- javascript函数参数
- JavaScript 函数参数
- javascript之函数参数
- 理解JavaScript函数参数
- JavaScript函数的参数
- JavaScript 函数参数
- javascript函数的参数
- javascript函数的参数问题
- 如何用Docker编排容器
- Android, xmpp, asmack以及openfire
- 最小二乘法
- 9.5位操作(三)——给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数
- C/C++ 中内存对齐问题
- [Javascript] 函数参数讨论
- 一款已上市MMO手游地图同步方案总结
- MarkDown文档规范
- #openstack-meeting: swift(2015-08-05)
- PHP 测试页index.php phpinfo 空白问题
- js 请求URL 追加参数
- Vert.x-Web的讲解和使用(三)
- 90. Subsets II
- Web前端开发工具