夺命雷公狗---javascript NO:22 对象在内存中的表现形式

在php中,我们在自定义类时,属性都是预定义在我们的自定义类中,而在JavaScript代码中,所有对象的属性和方法都是动态添加到对象中,那么请详解一下几种情况:

例1:如果创建第二个对象,会拥有name和age属性吗?

var p1 = new Person();

p1.name = ‘zhangsan’;

p1.age = 30;

var p2 = new Person();

答:不会,原因如下:

在JavaScript中数据类型分为两大类:

值类型

String    var str=’hello’;

Number  var num=10;

Boolean  var marry=true;

引用类型

Object

例2:如果创建第二个对象p2,使用p1为p2赋值会怎样?

var p1 = new Person();

p1.name = ‘zhangsan’;

p1.age = 30;

var p2 = p1;

答:会自动拥有p1的name和age属性

例3:如果删除了p2对象,是否会影响到p1对象

p2 = null;

答:这样对p1起不到任何影响,除非从新对某个指定属性从新赋值才会影响到p1

p2.name = ‘lisi';

原文地址:https://www.cnblogs.com/leigood/p/5031942.html