`
mooring
  • 浏览: 96058 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JS对象传递方式 学习笔记

阅读更多
var    obj = { key1: "hello" , key2: "world" };
function modifyObj(obj){
    obj = { key3: "world1", key4: "hello1" };  //将不会改变外部的obj
}
function changeObj(obj){
    obj.key3 = "world2";
    obj.key4 = "hello2";  //将改变外部的obj对象的属性
}
obj  //函数调用前obj属性
Object
key1: "hello"
key2: "world"
__proto__: Object

modifyObj(obj)
obj  //函数调用后obj属性没有变化
Object
key1: "hello"
key2: "world"
__proto__: Object

changeObj(obj)
obj   //函数调用后,属性发生了变化
Object
key1: "hello"
key2: "world"
key3: "world2"
key4: "hello2"
__proto__: Object
 
原因分析:
Javascript中,对象的传递实际是引用地址的传递,当给函数设置属性时,对象的引用首地址并没有发生改变, 函数内部增加属性时,函数调用结束后,增加的属性继续生效
在函数内部将传入引用的地址指向一个新的栈地址时,函数调用结束可能会导致引用指向无效的地址,故Javascript规范特别规定了,在函数内修改对象的引用地址时,函数调用结束后引用地址不做改变


author: mooring
date: 2012/11/09
0
0
分享到:
评论

相关推荐

    js 笔记 javascript 学习笔记

    本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...

    JavaScript学习笔记,javascript基础知识,基础语法整理.pdf

    JavaScript是一种高级的、动态的、基于对象的客户端脚本语言。它是在网页上执行的脚本语言,能实现网页的交互功能。下面是该资源中的重要知识点总结: 一、 JavaScript 基本概念 * JavaScript是一种基于对象的脚本...

    JavaScript高级程序设计2,学习笔记---第一篇

    这篇学习笔记将带你探索JavaScript的核心概念,包括变量、数据类型、控制流、函数、对象和类等,这些都是构建复杂应用程序的基础。 首先,我们要了解JavaScript的基础语法。在JavaScript中,变量是存储数据的容器,...

    vue.js学习笔记

    Vue.js学习笔记 Vue.js是一个轻量级的前端JavaScript框架,它以其易用性、灵活性和高效性而受到开发者的青睐。Vue的核心功能是能够将页面上的功能模块化开发,即通过组件化的方式构建前端界面,从而提高开发效率...

    JS AngularJS 学习笔记

    $scope是连接控制器和视图的桥梁,它是模型数据在控制器和视图之间传递的媒介。控制器中修改的数据会立即反映到与之关联的视图上,反之亦然。 **9. 服务** AngularJS的服务是单例对象,可以跨控制器共享数据和功能...

    javascript and jquery学习笔记与资料

    这里,我们有针对这两个主题的学习笔记和参考资料,包括JavaScript培训、jQuery API、JavaScript基础、函数详解以及jQuery使用手册等内容。让我们逐一探讨这些知识点。 首先,`JavaScript培训.zip`可能包含的是对...

    狂神说系列 JavaScript笔记

    【狂神说系列 JavaScript笔记】是一份全面且深入的JavaScript学习资源,旨在帮助开发者和初学者深入理解这门广泛应用于Web开发的脚本语言。这份笔记涵盖了JavaScript的基础语法、核心概念以及高级特性,旨在构建一个...

    JavaScript-学习笔记.docx

    这篇学习笔记主要涉及了JavaScript的基础概念和一些高级特性,包括预编译、作用域、函数、对象原型、原型链、函数调用方式(如call、apply)、继承模式、对象克隆、数组操作、自定义类型判断以及错误处理机制。...

    JS学习笔记.pdf

    标题《JS学习笔记》暗示了这是一份关于JavaScript编程语言的学习材料,包含了一系列的学习要点。描述信息与标题相同,没有提供额外的信息。标签为空,意味着没有预设的分类或标签信息。部分内容则提供了一些...

    JavaScript 学习笔记集和代码库

    压缩包中的“JavaScript学习笔记集”可能包含了语言的基本概念、语法特性、面向对象编程、闭包、原型链、作用域、异步编程等内容的详细解释。而“代码库”可能包含了大量的示例代码,涵盖各种常见任务,如表单验证、...

    入门Vue.js基础学习笔记记录,遇坑!

    - **Vue.js** 是一种轻量级的前端JavaScript框架,用于构建用户界面。它专注于视图层,易于上手且灵活。 - **官网地址**:[Vue.js官方中文API文档](https://vuejs.bootcss.com/guide/)。这是学习Vue.js的基础资源之...

    javascript学习笔记发放2

    在这篇学习笔记中,我们将深入探讨JavaScript中的数据操作和函数作用域。 首先,我们要明白JavaScript中的数据类型分为基本数据类型(如Number、String、Boolean、Null、Undefined和Symbol)和对象数据类型(如...

    js面向对象笔记

    **工厂模式**是将对象的创建集中到一起进行操作,定义一个函数,通过传递参数来初始化对象的属性,然后返回创建的对象。工厂模式的缺点在于每次调用工厂函数创建对象时,都会创建一个新的函数实例,这导致了内存的...

    JavaScript学习笔记

    JavaScript学习笔记主要涵盖了这门广泛应用于网页和网络应用开发的脚本语言的核心概念和技术。这篇笔记基于Jerry Zhang在iteye博客上分享的文章,旨在帮助读者深入理解和掌握JavaScript的基础及高级特性。 1. **...

    我的javascript学习笔记

    根据提供的文件信息,可以看出这份“我的javascript学习笔记”主要涵盖了JavaScript中的几个关键概念和技术要点,包括正则表达式、AJAX以及一些JavaScript的核心语言特性。接下来将这些知识点进行详细的整理和解释。...

    vue2+vue3学习笔记

    Vue2+Vue3 学习笔记 mounted 和 updated 在 Vue 中,`mounted` 和 `updated` 是两个非常重要的生命周期钩子函数。`mounted` 在页面初次加载时调用,而 `updated` 在数据改变并且要在页面重新渲染完成之后调用。...

    express.js初学者要点学习笔记.doc

    Express.js 初学者要点学习笔记 Express.js 是一个基于 Node.js 的 Web 应用框架,提供了一系列强大特性帮助开发者创建各种 Web 应用。下面是 Express.js 的一些要点学习笔记: 一、Express 框架简介 Express 是...

    JavaScript学习笔记 概括了所有的javaScript语法 用法

    本学习笔记全面涵盖了JavaScript的语法和用法,旨在帮助初学者快速掌握并深入理解这门语言。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符和流程控制。变量在JavaScript中使用`let`、`const`和`var`...

    Javascript经典学习笔记

    12. **对象继承**:所有JavaScript对象都继承自Object对象。Object的属性是不可枚举的,因此不能通过for...in循环遍历。 以上知识点涵盖了JavaScript中的基本数据类型、函数、事件处理、对象、类型检测和变量作用域...

Global site tag (gtag.js) - Google Analytics