为何输出一个对象不存在的属性,并不会报错呢?见代码 <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 ,这是为什么呢?
解决方案 »
- 能不能在js 里面再加载jquery .
- 用Javascript进行计算,屏幕僵住,有办法解决吗?
- 请问javascript中img的onload问题?
- 关于div在onmouseout属性中使用visibility
- 怎样用window.open()是去掉开启窗口的title栏?
- textarea中的内容,存进数据库,再拿出来后, 换行就没有了,在线等待,谢谢!!!!!!!111
- 请问怎么样用document来改变form里的内容?
- 如果做到把弹出框close的时候把母页面close掉?
- 急!有关flash和层的问题
- prototype原型继承的问题 高分悬赏啊。求大神解答
- 请举例说明: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 呢?