再次学习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 person = new Object();
setName(person);
alert(person.name); //Mark
这样看起来是引用传递,不是值传递,那么再做个測试:
function setName(obj){obj.name="Mark";obj = new Object();obj.name = "David";
}var person = new Object();
setName(person);
alert(person.name); //Mark
这个样例与前面一个样例的唯一的差别就是在setName()的函数后面添加 了两行代码:一行代码为obj又一次定义了个对象。还有一行代码为该对象定义了一个带有不同值的name属性。在把persion传递给setName()函数后,其name属性被设置为Mark,然后将一个新对象赋值给obj,同一时候其name属性设置为David。假设person是依照引用传递的,那么person就会自己主动被改动为指向其name属性值为David的新对象。可是,当接下再訪问person.name时。显示的值仍是Mark。这说明即使在函数内部改动了參数的值。但原始的引用仍然保持未变。实际上。当在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数运行完后被销毁。
转载于:https://www.cnblogs.com/ldxsuanfa/p/9944851.html
再次学习javascript中的參数传递相关推荐
- java參数传递机制浅析
欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...
- C语言中函数和指针的參数传递
C语言中函数和指针的參数传递 近期写二叉树的数据结构实验.想用一个没有返回值的函数来创建一个树,发现这个树就是建立不起来,那么我就用这个样例讨论一下c语言中指针作为形參的函数中传递中隐藏的东西. 大家 ...
- C# 多线程參数传递
1.通过实体类来传递(能够传递多个參数与获取返回值),demo例如以下: 须要在线程中调用的函数: namespace ThreadParameterDemo {public class Functi ...
- 如何理解并学习javascript中的面向对象(OOP)
本文不适合javascript初学者看(javascript水平还停留在函数级别的朋友,看了会觉得很晕的).如果你想让你的javascript代码变得更加优美,性能更加卓越.或者,你想像jQuery的 ...
- java scri p t_深入浅析JavaScript中数据共享和数据传递_javascri
数据共享和数据传递是相辅相成的,我们一起来讨论这个问题.首先要说的是共享和传递都是有作用域的.作用域就是起作用的区域,在同一个作用域数据可以共享,超过这个作用域就是跨作用域,就得用到数据传递了. 作用 ...
- JavaScript基础知识总结 14:学习JavaScript中的File API、Streams API、Web Cryptography API
目录 一.Atomics和SharedArrayBuffer 二.原子操作基础 1.算术及位操作方法 2.原子读和写 3.原子交换 4.原子Futex操作与加锁 三.跨上下文消息 四.Encoding ...
- Lua学习教程之 可变參数数据打包与解包
利用table的pack与unpack进行数据打包与解包.測试代码例如以下: print("Test table.pack()----------------");function ...
- 带你学习Javascript中的函数进阶(一)
文章目录 1. 函数的定义和调用 1.1 函数的定义方式 1.2 函数的调用方式 2. this 2.1 函数内this的指向 2.2 改变函数内部this指向 2.3 call apply bind ...
- brain.js 时间序列_免费的Brain JS课程学习JavaScript中的神经网络
brain.js 时间序列 The last few years, machine learning has gone from a promising technology to something ...
最新文章
- [VC6] 图像文件格式数据查看器
- JavaScript武力值飙升!用TensorFlow.js轻松实现在浏览器里搞深度学习......
- 剑指offer:翻转单词顺序列
- 获取/设置IFRAME内对象元素的几种JS方法
- Xcode命令行生成Bitcode静态库
- 基于qtc++设计文本编辑器的代码_文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了...
- 谁需要这件礼物?每一个爱学习的人!
- Unity在NGUI中默认动态字体Arial字体显示不完整解决方案
- C# 软件开发岗面试经验总结
- 2022.7.11-7.17 AI行业周刊(第106期):竭尽全力,努力就好
- 硬件驱动为什么要有WHQL数字签名
- python表示倍数的英语句型_英语倍数表达法
- mybatis基础入门
- Python小例子,太走心~
- 小白学习爬虫的第三天之数据解析bs4与pyQuery的使用
- android 乐固渠道打包,安卓腾讯乐固(legutools)多渠道打包(友盟)
- logrotate失效的简单排查
- u盘格式化后数据能恢复吗?
- P1719 最大加权矩形【前缀和】
- 自主学习平台亮点(培训用)
热门文章
- Factories Gym - 102222G(2018宁夏邀请赛暨2019银川icpc网络预选赛)
- Weird Game CodeForces - 299C
- spd耗材管理流程图_国药器械山东公司助力济宁医学院附属医院SPD项目成功启动...
- 汇编语言0AH功能调用中显示字符出错
- python while一定要提供循环次数吗_Python语法之选择和循环(if、while)
- Hadoop在MapReduce中使用压缩详解
- C/C++语言中字符串多行书写方法
- 嵌入式系统分类及其应用场景_词嵌入及其应用简介
- 将ARM4412开发板配置成USB网卡,并且使用USB通过Ubuntu上网
- 欢迎使用CSDN-markdown编辑器啦啦啦啦啦