应为Javascript字符串而不是对象
它不应该返回对象吗?如何解决此问题?如果您输出道具本身,您将看到它们是键:“a”、“b”。返回属性名称。将最后一行更改为应为Javascript字符串而不是对象,javascript,string,object,Javascript,String,Object,它不应该返回对象吗?如何解决此问题?如果您输出道具本身,您将看到它们是键:“a”、“b”。返回属性名称。将最后一行更改为 var x = {}; x.a = {y:5}; x.b = {z:6}; for (prop in x) console.log(typeof prop); // returns "string". Why not "object"? x[prop]部分采用名为prop(类型为string)的属性名称,并返回属性x.prop,对于a和b,该属性将返回object。所有这
var x = {};
x.a = {y:5};
x.b = {z:6};
for (prop in x) console.log(typeof prop); // returns "string". Why not "object"?
x[prop]
部分采用名为prop
(类型为string)的属性名称,并返回属性x.prop
,对于a和b,该属性将返回object。所有这些响应都是正确的,但通过一个更正的示例,您可能会更好地看到它:
for (prop in x) console.log(typeof x[prop]);
你应该看看
prop
是什么:阅读怎么样?循环中prop
得到的值是字符串“a”,然后是字符串“b”。对,但是为什么当“a”是对象时它会得到字符串呢?@user1019031:“a”
不是对象,而是字符串x.a
(或x[“a”]
)是一个对象。看看我在评论中链接到的文档。啊,明白了,谢谢!这正是我所需要的。
var x = {};
x.a = {y:5};
x.b = {z:6};
for (prop in x) console.log(typeof prop); // returns "string"
for (prop in x) console.log(prop); // returns "a", then "b"
for (prop in x) console.log(typeof x[prop]); // returns "object"
for (prop in x) console.log(x[prop]); // returns {y:5}, then {z:6}