面向对象--对象引用

来源:互联网 发布:selfiecity软件下载 编辑:程序博客网 时间:2024/05/16 08:29

比较是否相同

1)基本类型的比较

var a = 5;var b = a;b += 3;alert(b); //8alert(a); //5   基本类型 : 赋值的时候只是值的复制

2) 对象类型的比较

var a = [1,2,3];var b = a;b.push(4);alert(b);  //[1,2,3,4]alert(a);  //[1,2,3,4]   对象类型 : 赋值不仅是值的复制,而且也是引用的传递

下面这种和上面不一样,上面的地址相同。b重新赋值,所以和a地址不相同。

var a = [1,2,3];var b = a;b = [1,2,3,4];alert(b); //[1,2,3,4]alert(a); //[1,2,3]

总结:

var a = 5;var b = 5;alert(a == b);  //基本类型 : 值相同就可以
var a = [1,2,3];var b = [1,2,3];alert( a == b );  //false  //对象类型 : 值和引用都相同才行
var a = [1,2,3];var b = a;alert( a==b );  //true

思考:每创建一个对象,就有一个引用,这样会降低性能,这里就引出了原型的概念
原型 : 去改写对象下面公用的方法或者属性 , 让公用的方法或者属性在内存中存在一份 ( 提高性能 )

原创粉丝点击