请指教javascript的constructor属性问题?
展开全部
第一个问题:
a是Array对象的实例,所以a.constructor当然是Array()了
js世界里,所有对象都属于Object,其中当然包括Array对象.Object.construtor同样也是Function
注意:a是Array对象的实例,而Array是对象.不同的.
第二个问题:
Array().construtor、Array.construtor、a().construtor是完全不同的三个东西。
Array()其实已经是Array对象的一个实例了。他的.construtor当然是Array()了。就如同第一个问题中的a一样。
而Array是对象。a()就是a的一个实例了。相当于var
b=new
a();b.construtor
第三个问题:
试试下面的代码:
function
a(){
alert(1);
}
document.write(a().constructor+"<br>");
document.write(a.constructor+"<br>");
结合上面第一和第二个问题,应该明白两者之间的差别了吧!
“为什么函数名a可以作为对象啊?”这个问题不需要回答了。。反问一下吧。
总结:
LZ就是没有明白对象,与对象的实例之间的区别。还有,JS里,任何东西都是对象。
a是Array对象的实例,所以a.constructor当然是Array()了
js世界里,所有对象都属于Object,其中当然包括Array对象.Object.construtor同样也是Function
注意:a是Array对象的实例,而Array是对象.不同的.
第二个问题:
Array().construtor、Array.construtor、a().construtor是完全不同的三个东西。
Array()其实已经是Array对象的一个实例了。他的.construtor当然是Array()了。就如同第一个问题中的a一样。
而Array是对象。a()就是a的一个实例了。相当于var
b=new
a();b.construtor
第三个问题:
试试下面的代码:
function
a(){
alert(1);
}
document.write(a().constructor+"<br>");
document.write(a.constructor+"<br>");
结合上面第一和第二个问题,应该明白两者之间的差别了吧!
“为什么函数名a可以作为对象啊?”这个问题不需要回答了。。反问一下吧。
总结:
LZ就是没有明白对象,与对象的实例之间的区别。还有,JS里,任何东西都是对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询