我目前正在阅读Douglas Rockford的" JavaScript The Good Parts" ,我发现了以下两个主题:
根据这本书:
通过尝试检索属性并检查获得的值,可以轻松检查对象以确定它具有哪些属性.typeof运算符对于确定属性的类型非常有用。
虽然我理解了所说的内容,但我们可以使用对象反射来基本上查看它包含的所有属性和值。有点像从产品背面读取成分,看看它究竟是由什么制成的。
我的问题是为什么以及如何?为什么我需要使用对象Reflection,在什么情况下使用它有什么好处以及Enumeration如何连接?反射与反射之间的联系是什么?枚举吗
提前致谢。
答案 0 :(得分:0)
在JS中,对象通常以非常动态的方式创建。请看下面的代码段。
动态创建的对象数组。
var persons = [{
name: "Peter",
age: 20
},{
name: "Fox",
ages: "21"},
,{
name: "Fox",
age: "21"}
]
用作过滤器的对象。
var types={
name: "string",
age:"number"
}
检查人员中的每个对象是否具有属性名称和年龄。 Object.keys返回对象属性的Array。
在其他语言中,这比这一个班轮更复杂。
console.log(persons.filter(function(person){
return Object.keys(person).filter(function(property){
return types[property] && typeof person[property] === types[property];
}).length === requiredProps.length;
}));
此外,还检查所需的类型 - 字符串和数字。
但为什么呢?有不同的场景,例如在Web应用程序中,您需要检查用户是否指定了一些必需的输入。在编程中,您经常需要使用数组中的对象。因此,数组函数filter,reduce,map大量用于操作某些输出的输入。适用于函数或某些服务器API。
祝你好运