得到一段json数据格式,但是字符串,想利用对象打点的方式得到其中的属性。这便让人想到反射。
粗略理解:将字符串以程序本身的意思去表达。这就是反射,通过这个例子牢牢的把反射学到。起码知道有他,下次在有这样功能的时候就知道怎么去找解决方法。在设计模式中,大量的用到反射!
jrjIndexData[i].region 是msg里面的数据,eval(msg);反射该字符串msg
网上定义:反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。
JAVA反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
---------------------------------------------------------------------
eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
{
var s = eval("2+3");
alert(s);
}
s=5;不是2+3,也不是23
有人使用eval来获取难以索引的对象。 文档对象模型(DOM)的问题之一是:有时你要获取你要求的对象简直就是痛苦。不幸的是, JavaScript将会寻找名字叫 the_image而不是你所希望的"cheese"或者"parrot"的图象,于是你得到了错误信息:”没听说过一个名为the_image的对象”。
还好,eval能够帮你得到你想要的对象。
如果用户在提示框里填入"parrot",在第二行里创建了一个字符串即window.document.parrot. 然后包含了eval的第三行意思是: "给我对象window.document.parrot" - 也就是你要的那个图象对象。一旦你获取了这个图象对象,你可以把它的src属性设为ant.gif. 有点害怕?用不着。其实这相当有用,人们也经常使用它。