简单的有关问题,js初始化对象
简单的问题,js初始化对象
如题,js初始化对象。2者有什么区别?它们适合在什么情况下使用?
自己感觉null也是对象,{} = new Object() ?空对象
------解决思路----------------------
不说底层的内存分配。
都是定义一个object 对象,并初始化。但是 {} 不等于null
var a={};
var b = null;
a.a1=1; //OK
a.a2="2";//OK
b.b1=1; //TypeError: Cannot set property 'b1' of null
------解决思路----------------------
a={},代表创建了一个空对象
b=null,表示没有类型信息.null不是一个对象,也不是一个具体的类型,只是无类型变量的初始状态.
两者有本质的区别.至于什么时候使用哪个看你的需求.如果是写js框架,{}这种方式用的多一些,它可以免去null判断
[code]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>open source</title>
<script type="text/javascript">
var a={};
console.log(a.name+"--->");
var b=null;
try{
console.log(b.name+"<");
}catch(e){
console.log("b is not object");
}
</script>
</head>
<body>
</body></html>
[/code]
var a={};
var a = null;
如题,js初始化对象。2者有什么区别?它们适合在什么情况下使用?
自己感觉null也是对象,{} = new Object() ?空对象
------解决思路----------------------
不说底层的内存分配。
都是定义一个object 对象,并初始化。但是 {} 不等于null
var a={};
var b = null;
a.a1=1; //OK
a.a2="2";//OK
b.b1=1; //TypeError: Cannot set property 'b1' of null
------解决思路----------------------
a={},代表创建了一个空对象
b=null,表示没有类型信息.null不是一个对象,也不是一个具体的类型,只是无类型变量的初始状态.
两者有本质的区别.至于什么时候使用哪个看你的需求.如果是写js框架,{}这种方式用的多一些,它可以免去null判断
[code]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>open source</title>
<script type="text/javascript">
var a={};
console.log(a.name+"--->");
var b=null;
try{
console.log(b.name+"<");
}catch(e){
console.log("b is not object");
}
</script>
</head>
<body>
</body></html>
[/code]