JAVASCRIPT面向对象编程

例1

//创建一个对象

var obj=new Object();

//创建一个引用

var objRef=obj;

obj.oneProperty=true;

//此时obj和objRef指向同一个对象

alert(obj.oneProperty==objRef.oneProperty);

例2

//创建一个数组对象

var items=new Array("one","two","three");

//创建一个items的引用

var itemsRef=items;

items.push("four");

//此时obj和objRef指向同一个对象

alert(itemsRef.length==items.length);

例3

//将items置为字符串的数组

var items=new Array("one","two","three");

//将itemsRef置为items的引用

var itemsRef=items;

//将items置为新的对象

items=new Array("one","two");

//此时items和itemsRef指向不同的对象了

//items指向new Array("one","two");

//itemsRef指向new Array("one","two","three);

alert(itemsRef.length!=items.length);

例4

//在执行字符串连接操作时,结果总是一个新的字符串对象。而非原字符串的修改版本

var items="test";

var itemsRef=items;

items+="ing";

alert("items:"+items+";itemsRef:"+itemsRef);

例5

//arguments的应用

function show()

{

var arr=[];

for(var i=0;i<arguments.length;i++){

arr.push(arguments[i]);

};

for(var i=0;i<arr.length;i++){

alert(arr[i]);

};

}

show(1,2,3,8,6);

例6

// js中是依据函数划分作用域的。而不是块{}

var test="old string";

function change()

{

var test="new string";

}

change();

alert(test);

例7

//比较例6

var test="old string";

function change()

{

 //此处没有var,注意如果变量没有显示声明,那么变量就是全局变量。统属于window对象

test="new string";

}

change();

alert(test);