对象的指向

// new实例化的时候 构造函数的原型是公用的
// 当new一个函数的时候 这个函数就成为了构造函数 构造函数的属性和方法都会在实例对象上重新创建一边造成内存浪费
 
function huge(){
return {
name:1
}
}
var s=new huge();
console.log(s)
s.name=2
console.log(s)
var n=new huge();
n.name=3;
console.log(n)
var a={d:1}
var b=a;
b.d=2;
console.log(a)
console.log(b)
 
对象得内存地址特别重要,要多想这个问题, 建一个变量得时候就会给这个变量分配一个内存  要看这个内存得指向地址

function aa(){
return {a:1}
}
//var ad={a:1}
var c = aa()  因为c和d得内存地址指向不一样     {a:1} 都各自指向了各自得对象
var d = aa()                 {a:1}
console.log(c.a) //1
console.log(d.a)
c.a = 2
console.log(c.a)
console.log(d.a)
console.log(aa().a) 

例2

var obj={a:1}
var fg=obj;
fg.a=2;
console.log(fg.a)
console.log(obj.a)

这个就是都指向了一个内存地址 fg->obj->{a;1}   想等于fg->{a:1}  (fg指向了{a:1})

 
原文地址:https://www.cnblogs.com/wang-z-z/p/8508247.html