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

  之前在看对象的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呢?我们在浏览器试一下:

  

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

原文地址:https://www.cnblogs.com/zhangnan35/p/8570786.html