为何输出一个对象不存在的属性,并不会报错呢?见代码 <script type="text/javascript">
var o2=new Object;
o2.color ="green";
o2.showcolor=function(){
alert(this.color); //该属性存在,正常
alert(this.height); //该属性不存在,为何输出不报错呢?而是输出 undefined
}
o2.showcolor();
</script>
按理说,这个对象根本就没有 height 属性,输出时应该提示属性不合法呀,
但是却不报错,输出 undefined ,这是为什么呢?
var o2=new Object;
o2.color ="green";
o2.showcolor=function(){
alert(this.color); //该属性存在,正常
alert(this.height); //该属性不存在,为何输出不报错呢?而是输出 undefined
}
o2.showcolor();
</script>
按理说,这个对象根本就没有 height 属性,输出时应该提示属性不合法呀,
但是却不报错,输出 undefined ,这是为什么呢?
解决方案 »
- 如何获取某个div里面的一个input的值(input在这个div里面是唯一的id)
- [求助] 关于javascript的构造函数链,在派生类中定义一个属性引用它的基类,然后在派生类的构造函数中引用基类的构造函数。
- 如何用javasrcipt 实现判断本周是否是本月的最后一周
- 实在是找不到原因了,请大家帮帮忙?
- 这个涉及到cookie吗?
- 求救!!如何用javascript调用一个activeX控件
- 请教JavaScript时间函数
- 小问题:有这样的文本框吗?
- 判断出现问题
- 数据动态显示
- 请举例说明:js中onkeypress与onkeydown的区别
- 求教:关于显示ACCESS数据库记录问题
可以用if 判断一下!
script type="text/javascript">
var o2=new Object();
o2.color ="green";
o2.showcolor=function(){
alert(this.color); //该属性存在,正常
if(this.height)alert(this.height); //该属性不存在,为何输出不报错呢?而是输出 undefined
}
o2.showcolor();
</script>
所以说,undefined 并不是报错呀。报错的那句我能理解,因为这个变量确实不存在,但是不报错的那句我不理解,为何不提示 hright未定义呢?
<script type="text/javascript">
var o2=new Object;
o2.color="green";
o2.showcolor=function(){
alert(this.color); //该属性存在,正常
alert(this.height); //该属性不存在,为何输出不报错呢?而是输出 undefined
}
o2.showcolor();
alert(height); //这里为何会报错呢?
</script>
alert(this.color); //该属性存在,正常
该属性在alert之前是不存在,但在alert时已经动态定义了color属性,只是还没有赋值。
this.color定义属性color(此属性为动态属性),没有初始化,所以其值为undefined。所以alert(this.color)会弹出undefined。
如果定义时就初始化alert(this.color=1),则会弹出1。关于动态属性方面的知识,楼主可以参考as。
关键是,为什么对于普通变量,不是这样处理呢?即对于没有定义的变量。
alert(height);时,为何报错,而不是输出 undefined 呢?