小问题填坑,关于obj.x和obj["x"]

时间:2020-12-27 20:30:22

  之前在看对象的api中for in函数时,有一个地方让我略有疑惑:

  

var obj={
x:100,
y:200,
z:300
};
for(var key in obj){
if(obj.hasOwnProperty(key)){
console.log(key,obj[key]);
}
}

  为什么是obj[key]而不是obj.key呢?我们在浏览器试一下:

  小问题填坑,关于obj.x和obj["x"]

  说起来也有点尴尬,原来在for in函数中,得到的key是一个字符串类型,所以只能用obj[key],其实,比如说在这个对象中,obj.x和obj["x"]是完全一样的意思,只是形式上有所区别。顺带一说,hasOwnProperty这个函数接收的变量的类型也只能是字符串类型。