`
yiyanwan77
  • 浏览: 187786 次
  • 性别: Icon_minigender_1
  • 来自: 威海
社区版块
存档分类
最新评论

javascript的传值和传址

阅读更多
类型  复制  传递  比较
数字  传值   传值   传值
 布尔    传值    传值    传值
 字符串  不可变   不可变    传值
 对象  传址  传址  传址

 

 

 

  • 对象在复制和比较中传址

 

function myObject(name){
    this.name=name;
    }
   var o1=new myObject("o1");

   var o2=o1;
   alert("o1.name="+o1.name);
   alert("o2.name="+o2.name);
   alert(o1==o2)
   o2.name="o2"
   alert("o1.name="+o1.name);
   alert("o2.name="+o2.name)
   alert(o1==o2)

 

结果为:

  1. o1
  2. o1
  3. true
  4. o2
  5. o2
  6. true

 

  • 对象在传递中传址

 

function myObject(name){
    this.name=name;
    }
var o1=new myObject("o1");

function changeName(o){
  o.name="o";
}
changeName(o1);
alert(o1.name);	

  

 结果为:

  1. o

 

例:

var a={};
		var b={}
		function create(){
			var text={"name":"text"};
			a.text=text;
			b.text=text;
			}
		create()
		alert(a.text.name);
		alert(b.text.name)

 

结果:

text,text

 

如果a对象修改了text.name的值,那么b中的text.name也会改变

var a={};
		var b={}
		function create(){
			var text={"name":"text"};
			a.text=text;
			b.text=text;
			}
		create()
		alert(a.text.name);
		a.text.name="a"
		alert(b.text.name)

 

结果为:

text,a

 

而对于普通变量情况则不一样

var a={};
		var b={}
		function create(){
			var text=10;
			a.text=text;
			b.text=text;
			}
		create()
		alert(a.text);
		a.text=15;
		alert(b.text)

 结果为:

10,10

分享到:
评论

相关推荐

    浅谈js中的引用和复制(传值和传址)

    JavaScript中的引用和复制是理解其工作原理的关键概念。在JavaScript中,数据类型分为两大类:基本类型(包括数字、字符串、布尔值、null和undefined)和引用类型(对象、数组和函数)。这两种类型的变量在赋值和...

    JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例

    通过上述知识点的学习,我们可以更清晰地理解JavaScript中变量作用域的概念,以及传值与传址的区别,从而在编程实践中做出更合适的变量管理和函数设计。对于初学者而言,这不仅是入门的基础知识,更是编写可读、可...

    javascript的变量、传值、传址、参数之间关系

    JavaScript是一种动态类型的脚本语言,其变量、传值、传址和参数之间的关系是理解和使用JavaScript中的一个基础但关键点。接下来,我会详细解释这些概念。 首先,JavaScript中的变量可以存储两种类型的数据:基本...

    js代码-函数调用的传值和传址

    本主题聚焦于JavaScript中的函数调用机制,特别是关于传值和传址的概念。理解这两个概念对于编写高效和可维护的代码至关重要。 首先,我们要明白在JavaScript中,变量有两种类型:基本类型(如字符串、数字、布尔值...

    javascript中的变量是传值还是传址的?

    总结来说,JavaScript中的变量处理基于数据类型的不同:不可变类型通过值的复制进行赋值和函数参数传递,而可变类型通过引用的复制进行。这种设计允许JavaScript在处理不同类型数据时更高效地管理内存,同时提供了...

    最新大厂前端面试题-面试指南JavaScript篇面试题.docx

    本文将对 JavaScript 基础知识点进行总结,涵盖数据类型、类型转换、作用域、变量提升、传值 VS 传址等知识点。 数据类型 JavaScript 中有 7 种基本数据类型:string、number、object、boolean、null、undefined ...

    JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享

    实际上,JavaScript总是以传值(byVal)的方式传递参数,但这并不意味着对于所有类型的值都表现为传统的传值行为。理解这一点的关键在于理解JavaScript中的值类型(如number、string)和引用类型(如Object、Array)...

    详解javascript函数的参数

    在JavaScript中,传递参数主要分为“传值”和“传址”两种方式。当函数通过值传递参数时,实际上传递的是变量值的一个副本。这意味着在函数内部对参数进行修改不会影响到原始变量。相反,当函数通过引用传递参数时,...

    Javascript入门学习第二篇 js类型第1/2页

    在JavaScript中,基本数据类型如数字(Number)和布尔(Boolean)是通过传值的方式操作的,而对象类型如数组(Array)和函数(Function)则是通过传址的方式操作。 ### JavaScript中操作数据值的方式 JavaScript提供了三种...

Global site tag (gtag.js) - Google Analytics