大家应该都不知道 js 可以自动生成对象的属性吧,下面有个不错的示例,感兴趣的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
例如 我们有如下这么一个对象
- var obj = { a:{
- b:"bb"
- }
- }
但是我们现在想给 obj 对象增加如下属性 obj.a.b.c.d.f="ff" ; 我们一般会如下做,obj.a.b.c={},obj.a.b.c.d={} ,obj.a.b.c.d.f="ff" ; 但是如果我的属性很多,这样的方法时不可行的。现在提供一个自动生成对象属性的方法
- function autoCreateObjProperty(temString){
- var TemObjs = temString.split(".");
- for(var i =0;i<TemObjs.length;i++){
- var ttt = TemObjs[i];
- if(!obj.hasOwnProperty(TemObjs[i])){
- var objString="obj";
- for(var j= 1;j<=i;j++){
- objString+="."+TemObjs[j];
- }
- obj = eval(objString);
- if(obj == undefined){
- var temObjString="obj"; //对象的名var obj = {}
- for(var j= 1;j<i;j++){
- temObjString+="."+TemObjs[j];
- }
- obj = eval(temObjString);
- obj[TemObjs[i]]={};
- obj={};
- }
- }else{
- obj = obj[TemObjs[i]];
- }
- }
- return obj;
- }
来源: