关于对象引用的作用域
2014-05-23 19:25
134 查看
var cat ={};
cat.mouse = function(){var b="1111"};
var dog = cat;
console.log(dog);
console.log(dog.mouse);
dog.mouse = function(){var b="2222"};
dog.hat="b";
console.log(cat)
Object {mouse: function}
hat: "b"
mouse: function (){var b="2222"}
__proto__: Object
function (){var b="1111"}
Object {mouse: function, hat: "b"}
hat: "b"
mouse: function (){var b="2222"}
__proto__: Object
对象赋值后,指向了同一个对象,及时改变的是第二个对象,第一个对象也跟着变。
结果是aa
结果是bb
结果是aa
直接赋值的是值传递啊,需要对里面的修改,才改变原来的值。
需要注意的是,如果函数用新的一个对象或者数组覆盖这个引用,那么这一修改在外部是不可见的。或者说,对象和数组是用传值的方式来传递的,只不过这个值是一个引用,而不是本身。
http://www.cnblogs.com/joe2014/archive/2014/06/28/3813919.html
cat.mouse = function(){var b="1111"};
var dog = cat;
console.log(dog);
console.log(dog.mouse);
dog.mouse = function(){var b="2222"};
dog.hat="b";
console.log(cat)
Object {mouse: function}
hat: "b"
mouse: function (){var b="2222"}
__proto__: Object
function (){var b="1111"}
Object {mouse: function, hat: "b"}
hat: "b"
mouse: function (){var b="2222"}
__proto__: Object
对象赋值后,指向了同一个对象,及时改变的是第二个对象,第一个对象也跟着变。
var a="aa"; var b = function (c, d){ c="bb"; } b(a); console.log(a);
结果是aa
var a=["aa"]; var b = function (c, d){ for(var i in c){ c[i] ="bb" } } b(a); console.log(a);
结果是bb
var a=["aa"]; var b = function (c, d){ c=["bb"] } b(a); console.log(a);
结果是aa
直接赋值的是值传递啊,需要对里面的修改,才改变原来的值。
需要注意的是,如果函数用新的一个对象或者数组覆盖这个引用,那么这一修改在外部是不可见的。或者说,对象和数组是用传值的方式来传递的,只不过这个值是一个引用,而不是本身。
字符串类型
前面看了这么多类型,一直都没有介绍字符串类型,它不好直接分为基础类型和引用类型,因为字符串是一种任意的长度,看上去应该是引用类型,可是他却不是对象,所以也不可作为引用类型。类型 | 复制 | 传递 | 比较 |
数字 | 传值 | 传值 | 传值 |
布尔 | 传值 | 传值 | 传值 |
字符串 | 不可变 | 不可变 | 传值 |
对象 | 传址 | 传址 | 传址 |
相关文章推荐
- 关于“System.NullReferenceException: 未将对象引用设置到对象的实例”问题原因。
- 今天碰到的一个问题,关于通过基类对象的引用给子类赋值
- 关于swing Jframe 按照名称获取所包含JTextField对象引用的问题解决
- 关于对象引用次数几道测试题
- 关于变量,对象,引用的存放。
- 关于对象引用的一个例子
- 关于对象与引用之间的一些基本概念
- 关于webbupload在IIS7.0下出现未将对象引用到实例的错误解决方案
- 关于临时对象的引用
- 关于引用对象的使用的一点小理解
- 关于对象与引用之间的一些基本概念
- (转)一段关于对象引用的形象解释
- 一段关于对象引用的形象解释
- ASP.NET关于"未将对象引用设置到对象的实例"异常的原因
- 关于父类引用指向子类对象
- 关于对象和引用的误区。
- 关于对象与引用之间的一些基本概念。
- 关于Java对象与对象引用
- 关于string的对象引用
- 关于函数返回引用和const对象