JavaScript 引用类型

在JS中,数值、布尔值、null和undefined属于基本类型,而对象、数组和函数属于引用类型。

该博文要解决的两个问题是:

  • 当A引用B后,A与B的关系是:== 、===,还是其它。
  • 当A引用B后,B被重定向后,A是保持原引用,还是跟随B的新指向。

/**
 * Filename: AppointTest.js
 * Description: This file is use to find out how a appiont work.
 * Author: 猎空de代码
 * Date: 2012/3/8
 */
Ext.onReady(function() {
	/**
	 * Function for print
	 */
	var print = console.log;
	var printAll = function(arr, obj) {
		print("arr[0] = " + Ext.encode(arr[0]));
		print("obj = " + Ext.encode(obj));
		print(arr[0] == obj);
		print(arr[0] === obj);
	}
	
	/**
	 * Test data
	 */
	var obj = {
		name: '猎空de代码'
	}
	var arr = [obj];
	
	obj.age = 23;//这个新增的属性,是否会加入到arr中?
	printAll(arr, obj);
	
	// Redirect obj to another Object.
	obj = {
		hobby: 'thinking'
	}
	printAll(arr, obj);//重定向obj后,arr[0]变了吗?
});

运行结果图:

由上图可以看到,新加入age属性同时影响了arr;

但是当obj重定向后,arr并不跟随obj而变化,而是指向原引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值