给一个对象初始化的本质(null)
var stu = null
stu.name = "aaa"
console.log(stu) //此时会报错,因为此时还未创建stu对象,只是在栈内存占了一个位置,在堆内存中没有创建对象
//所以需要创建先一个"空对象"
stu = {}
stu.name = "aaa"
console.log(stu)
- 给一个全局变量赋值null,相当于将这个变量的指针对象以及值清空
var stu2 = {
name: null
}
console.log(stu2)
- 如果给对象的属性赋值为null,或者局部变量赋值为null,相当于给这个属性分配了一块空的内存,值为null,JS会回收全局变量为null的对象。
//创建一个“空对象”
var obj = {}
- 上面的"空对象"为什么打了双引号?这只是一种简称而已。在js中根本不存在真正的空对象,理解这一点至关重要!即使时最简单的{}对象也会包含从Object.prototype继承而来的属性和方法。我们提到的"空对象"只是说这个对象没有自有属性,不考虑它是否有继承而来的属性
相关文章
暂无评论...