javascipt基础(1)

    作为一个js的基础概念,reference是指向真实对象的指针。对于js,一个真实的对象永远不会是一个reference(例如字符串是String对象,数组是Array对象),同时多个不同的reference可以指向同一个对象。

    当多个reference同时指向同一个对象的时候,修改该变量的基础类型会反映到所有的变量中。如下例:

var obj = new Object();
var objRef = obj;
obj.oneProperty = 'lijx';
console.log(objRef.oneProperty === 'lijx');

    上述例子中,将Object换成Function,会得到同样的结果,js中所有核心对象都是Object的实例。看下一个例子:

var items = new Array( "one", "two", "three" );
var itemsRef = items;
items.push( "four" );
console.log( items.length == itemsRef.length );

    在js中,reference会遍历reference链,指向核心对象,也就是说一个reference不会指向另一个reference。reference会指向最后创建的对象。如下:

var item = "test";
var itemRef = item;
object. item += "ing";
console.log( item != itemRef );

    其中对String对象赋值的时候,会自动创建一个新的String对象。


你可能感兴趣的:(JavaScript,reference)