JS中对象属性的表示方法有两种:
<prop为属性名>
- obj.prop
- obj[‘prop’](注:’[]'里面必须是字符串)
例:
var obj = {
name:'abc'
}
obj.prop的内部原理:每当调用obj.prop,系统内部会将其隐式的转换为obj[‘prop’]来执行
在平时的代码中,我们可能用第一种写法用的比较方便,但实际上,第二种方法比第一种方法要更加的快捷(不用进行内部隐式的转换)和灵活。
例:
有这样一个旅馆对象,其中包含四个房间对象,现在要写一个对象方法,实现传入房间号参数,返回对应的房间信息。
<script>
var hotel = {
room1:{name:'room1'},
room2:{name:'room2'},
room3:{name:'room3'},
room4:{name:'room4'},
sayRoom:function(num){
return this.xxx;
}
}
</script>
如果我们使用第一种写法将无法实现’room’和num的字符串拼接,而第二种写法能灵活的实现
<script>
var hotel = {
room1:{name:'room1'},
room2:{name:'room2'},
room3:{name:'room3'},
room4:{name:'room4'},
sayRoom:function(num){
return this['room'+num];
}
}
</script>