选手自我介绍:
值传递:多针对于基本类型而言,即外部定义变量,传递给函数后,如果在函数内部对参数进行了改变,不会影响外部定义变量本身的值。
引用传递:多针对对象而言,即外部定义的对象,传递给函数后,如果在函数内部对对象进行了改变,就会影响外部定义的对象。
值传递 vs 引用传递开始
值传递示例
function addNum(num){
num += 20;
return num;
}
var testVar = 20;
var reTestVar = addNum(testVar);
alert(testVar);//20
alert(reTestVar);//40
我们看到,传递的testVar在addNum函数内对参数加20,而testVar自身的值并没有改变。
引用传递示例
function changeObj(obj){
obj.color ="red";
}
var flower = new Object();
flower.color = "blue";
changeObj(flower);
alert(flower.color);//red
我们看到,传递的flower在changeObj函数内对对象设置了color属性,而外部flower自身color属性值也确实被改变了。
好了裁判宣布二者各领风骚,打成平手。
等等值传递有话要说:引用传递有问题!
先上证据:
function changeObj(obj){
obj.color ="red";
obj = new Object();
obj.color = "yellow";
}
var flower = new Object();
flower.color = "blue";
changeObj(flower);
alert(flower.color);//red
为什么alert(flower.color)是red而不是yellow?
稍等,专家席给出评论:
按照引用传递的说法,传递进去的flower对象的最终值被赋予了新对象,并且color属性值为yellow,而结果却是red,故引用传递在javascript中这个概念错误的。
为什么值会被变为red,因为obj和flower引用的是堆内存中的同一个对象,换句话说即使这个对象是按值传递的,obj也会按引用的内存地址对同一个对象进行修改,
故引用传递给出的例子说明不了什么。
宣布:值传递 vs 引用传递 ,值传递获胜。
自古成者王败者寇:javascript中只有值传递,没有引用传递。
分享到:
相关推荐
在这个主题“xsl javascript 传递参数”中,我们将深入探讨如何在XSL转换过程中通过JavaScript传递参数,并利用XPath进行数据定位。 首先,XML是结构化数据的存储格式,它允许开发者定义自己的标签来组织数据。XSL...
传统的JavaScript函数参数传递是基于位置的,即按照参数在函数定义中的位置来接收值。然而,这种方式在参数较多时容易出错,特别是当参数顺序不正确或者缺失时。为了解决这一问题,JavaScript引入了一种更加直观的...
要使用JavaScript向SWF文件传递参数,我们首先需要理解SWF文件是什么,以及如何通过JavaScript与之交互。SWF是Flash动画文件的标准格式,虽然Adobe Flash已经被逐渐淘汰,但是仍有一些遗留系统或项目会使用到它。...
首先,JavaScript中的参数传递方式是“值传递”,这意味着当一个变量作为参数传递给函数时,函数接收到的是该变量的副本,而不是其引用。对于基本类型(如字符串、数字和布尔值),这没有问题,因为它们的值是直接...
总的来说,JavaScript的参数传递机制是基于值传递的,但对于对象类型,传递的是对象的引用副本,而不是对象本身。这种设计使得JavaScript能够灵活处理不同类型的数据,并提供了更丰富的编程可能性。了解这一点对于...
以下是一个示例的Flex代码,演示了如何从HTML传递的URL参数中获取值: ```xml ()"> <![CDATA[ import mx.controls.Alert; private var params:Object; private function init():void { btnID....
在JavaScript中,通过对话框进行参数传递是一种常见的交互方式,尤其在需要弹出一个模态对话框并与其进行数据交换的场景下更为常见。本文将详细介绍如何利用`window.showModalDialog()`方法来实现这种参数传递,并...
android原生和js交互传递参数 包含特殊字符 例如"\'"等情况 避免Uncaught SyntaxError: missing ) after argument list 避免JSON.parse失败等情况 利于快速和webview交互 加速开发过程
在探讨JavaScript如何向Action类传递多个参数之前,我们先来理解一下这个场景的基本构成和原理。在Web开发中,Action类通常是指后端处理请求的一个组件,它接收从前端发送过来的数据,进行业务逻辑处理,并返回响应...
在脚本或程序中调用Kettle时,可以使用`--param:参数名=参数值`的方式传递多个参数。 3. **循环加载数据**: Kettle中的“循环”通常由“循环”或“For Each”步骤实现,用于遍历列表、数组或集合中的每个元素,并...
这里的"Param1"应与调用方设置的Parameter名称一致,这样参数值就会被正确地赋给接收方的Attribute。 这个过程的核心是通过Outbound Exit Plug、URL参数和Startup Plug实现Application间的交互。通过这种方式,你...
- 使用HTML表单提交数据时,可通过JavaScript设置表单元素的值来传递参数。 - 表单提交后,通常会触发服务器端逻辑进行处理。 #### 方法五:解析URL参数 ```javascript // 解析URL中的参数并存储到数组中 var ...
以下是关于"javascript实现从子页与父页传递参数"的详细知识点: 1. **全局变量**:这是最基础的方法,可以在子页面中定义一个全局变量,然后在父页面中访问该变量来获取数据。但这种方法不推荐,因为全局变量可能...
本篇文章将深入探讨如何在JSP页面上使用JavaScript的`opener`属性来传递和接收参数。 首先,我们要理解`opener`的概念。`window.opener`是一个特殊的属性,它引用了打开当前窗口的窗口对象。如果一个窗口是另一个...
本教程将深入探讨Flex中组件之间的参数传递机制,帮助你更好地理解和掌握这一重要概念。 首先,了解Flex的基本架构。Flex基于MXML和ActionScript,其中MXML用于描述UI组件布局,而ActionScript则是面向对象的编程...
如何给javascript js事件传递参数.zip
本文将详细介绍如何在HTML页面中利用JavaScript来实现地址栏参数的传递与获取。 #### 二、基础知识 在深入讨论之前,我们需要了解一些基本概念: - **URL结构**:统一资源定位符(Uniform Resource Locator, URL)...
而对于引用类型的参数,JavaScript传递的是对象引用的一个副本,即按共享传递。这种传递方式让JavaScript的行为类似于按引用传递,但又有所不同,因为它涉及到的是引用的副本,而不是原始引用。 为了帮助读者深入...
bb.htm中则通过编写JavaScript函数QueryString来获取URL中传递过来的参数值。 值得注意的是,使用URL传递参数主要适用于GET请求,因为POST请求的数据不会出现在URL中。因此,上述技术只适用于GET方法或者已经明确...