1-1
<html>
<head>
<script>
// 将obj置为空对象
var obj = new Object();
// objRef 是 obj的引用
var objRef = obj;
// 修改原对象的一个属性
obj.oneProperty = true;
// 输出结果是true,因为它们引用了同一个对象
alert(obj.oneProperty === objRef.oneProperty);
</script>
</head>
</html>
打开页面弹出对话框 true
1-2
下面是一个最常用的例子:用push方法来给array对象添加新元素。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
// 创建一个数组
var items = new Array("one","two","three") ;
// 创建一个数组引用
var itemRef = items ;
// 将一个元素添加到数组中
items.push("four") ;
// 两个数组的长度是一致的,它们指向同一个数组对象
alert( items.length === itemRef.length );
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
必须记住引用指向的只能是一个具体的对象,而不能是另一个引用。
1-3
修改对象的引用,同时保持完整性
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
// 创建一个数组
var items = new Array("one","two","three") ;
// 创建一个数组引用
var itemRef = items ;
// 将items置为一个新对象
items = new Array("new" , "Array") ;
/* items 和 itemRef 现在指向不同的对象,items指向 new Array("new" , "Array")
itemRef指向 new Array("one","two","three")
*/
alert(items == itemRef);
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
1-4
var items = "test";
var itemRef = items;
items += "ing" ;
// items 和 itemRef 的值一经不同,因为新的字符串已经被创建
alert(items == itemRef);