zoukankan      html  css  js  c++  java
  • {}、:、[]、.的用法、动态给对象添加和删除属性、遍历对象的属性

    /*
     //:冒号的用法表示类的属性或者方法(与c#比较)
     //{}新建对象
     //var aa={a:{b}};//表示新建对象,并且设置对象的属性的值
     //var aa={a:1};
     //alert(aa.a);
     alert(_.get({a:{b:{c:1}}},['a','b','c']));
     */
       
     
     /*
     //测试hash
     //.has['a']['b']==>has.a.b
     var has={a:{b:function(){alert('aaa');}},c:'ccc'};
     var arr=['a','b'];
     alert(typeof has['a']['b']);
     alert(typeof has.a.b]);
     */

    //动态给对象添加和删除属性、遍历对象的属性

    if(_t in target)
            {
                return
            }
            else
            {
                try
                {
                    target[_t] = 1;//给类添加属性
                }
                catch(e)
                {
                    return
                }
            }
            p = (p = target.constructor) ? p.prototype : _o;
            for(i in target)//取出每一个对象的属性的名称,如果要取出属性的值则target[i]
            {
                if(i != _t)
                {
                    if(l < n &&
          target[i] &&
          (typeof target[i] == "object" || typeof target[i] == "function"))
        {
                        self(target[i],n,l)
                    }
                    if( ! (p && p[i]) &&
          i != "prototype" &&
          i != "constructor")
        {
                        try
                        {
                            delete target[i]
                        }
                        catch(e){}
                    }
                }
            }

    //举例:
     a=
     {
      b:"b",
      a:function()
      {
       alert('a');
      },
      c:{}
     }
      
     var p="___1_";
     if(!(p in a))
     {
      a[p]="pppp";
     }
     
     if('b' in a)
     {
      //a[p]="pppp";  
      delete a[b];
     }
     
     for(i in a)
     {  
      alert('key='+i+'\r\nvalue='+a[i]+'\r\ntype='+typeof(a[i])+'\r\nconstructor='+a[i].constructor);   
     }

  • 相关阅读:
    MinGW GCC下sleep()函数问题
    memcached内存分配及回收初探
    fastcgi重启
    window wamp下xhprof的安装使用,Graphviz配置
    Bootstrap研究3-基础html元素
    sql之left join、right join、inner join的区别
    【Asp.net入门03】第一个ASP.NET 应用程序-创建ASP.NET项目
    【Asp.net入门02】搭建Asp.net开发环境
    【Asp.net入门01】动态网站基础知识
    Android Studio 安装在Windows10中的陷阱
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/1366474.html
Copyright © 2011-2022 走看看