在javascript中获取对象值

在javascript中获取对象值,javascript,Javascript,嘿,伙计们,我是javascript开发新手。我一直在使用javascript处理对象。当我参考并尝试使用javascript对象编写代码时,我发现了一个错误。代码是 var and = { models:"AN", collection:{}, name: function() { var babe = 5; return babe; } } 当我用and.name{name:george,age:20}调用代码时;它给我的输出是5 但当我调用like and.name.age时

嘿,伙计们,我是javascript开发新手。我一直在使用javascript处理对象。当我参考并尝试使用javascript对象编写代码时,我发现了一个错误。代码是

var and = { models:"AN",

 collection:{},

 name: function() { var babe = 5; return babe; } 

}
当我用and.name{name:george,age:20}调用代码时;它给我的输出是5

但当我调用like and.name.age时,它显示我没有定义,而不是20

因为我是javasscript新手,所以我不知道我做错了什么。希望你们能帮我解决问题。提前谢谢。

您的name属性是一个函数,而不是一个包含age属性的对象

调用函数将返回return语句中设置的值

按属性名称调用属性将为您提供其值


我建议您尝试一个有关javascript基础知识的教程,以了解它们的区别…

问题在于函数和对象之间的混合:

var and = { models:"AN",

 collection:{},

 name: function() { var babe = 5; return babe; } 

}

and.name = { name:"george",age:20}

alert(and.name.age)
在jsfiddle中试试这个

这里我用一个对象更改函数名。然后我得到你想要的值


希望能有帮助

试试看,这可能对你有帮助

var obj = { models:"AN",
 collection:{},
 person:{},
 changeDetails: function(values) {
    obj.person.name = values.name;
    obj.person.age = values.age;
  } 
};

obj.changeDetails({name:"George",age:20});
console.log(obj.person);

你到底想做什么?名称不是对象。您尚未在名称上定义年龄属性,这就是您未定义的原因。您之所以未定义年龄属性,是因为您的名称字段是一个函数,因此不能在其中包含年龄字段。@Mritunjay我想调用like和{name:george,age:20}当我们呼叫和.name时,将20岁显示为20岁。age@Mritunjay你能给出一个我们想在哪种情况下使用like and.name{name:george,age:20}的答案吗?我们如何从中获取价值??