• js面向对象


    object需要注意的地方;

    在创建一个对象:1.  

    var obj =new object();
            obj.name="tom";
            obj.age="18"; /* 这是给创建的对象进行一个传参;*/
            obj["var"] = "123"; //这也是一种给对象进行传参的一个写法;
            console.log(obj["var"]);//同时访问时候也需要这样去访问;
            obj["123"] = 789;
            var n = "123";
            console.log([n]); //"789";  
            obj.test1 = null;
     
            obj.test2 = undefined; //console.log(obj.test2)打印出一个undefined;
            obj.test3 = true;  //同样的道理也会打印出true;
            console.log(obj.test1);//null 在console.log打印下会输出的一个null 不会报错;  
      //js的数据类型可以是任意的数据类型;甚至它也可以是一个对象如:

       obj.test =obj2 ;var obj2 = {name : "猪八戒"}; console.log(obj.test); //打印出name = "猪八戒"
      /* in 运算符
      * -通过该运算符可以检查一个对象中是否含有指定的属性
      *  如果有则返回true,没有则返回false;
      *  -语法:
      *    “属性名” in 对象
      */ 
       console.log("test" in obj); 
    var obj2=  //这也是创建对象的一种方法;
      {
        name:"xiaobai",
        "age":"23" //在对象中 属性名是允许带引号的;但是我建议不要去带。
      };
    var obj3 =
      {
        name:"ton",  
        age:"18"
      }
    var obj4 = obj3;
      console.log(obj4.name); // 打印出“ton”。
    如果我改变 obj3.name = "lily";
      console.log(obj4.name); 打印出”lily“。
    那么我现在改变 obj4 = null;
      console.log(obj3.name); 打印出“lily”
    注释:这里obj3是在堆里创建的对象,它只是拿到一个堆内存放的地址如 0x123,同样obj4是复制obj3的地址 来进行操控。
    如果我创建2个obj 如:
      var obj5 =
       {
       name:"ton",
       age:"21"
       };
      var obj6=
      {
      name:"ton",
      age:"21"
      }
      obj5 == obj6;
    那么我改变
      obj5.name ="tom";
      console.log(obj6.name); //打印输出“ton”。
      注释:这里他们虽然都相同,但是各自创建的对象都是在堆里创建,且是不同的块,所以当obj5改变时候 obj6不会改变。

     实际开发中一定要注意。

  • 相关阅读:
    沧海桑田,看风险评估在这十五年间的变化与演进
    安全建设从扁鹊三兄弟,到程咬金的三板斧
    基于主动防御能力,建设安全运营体系的一点思考
    如果身处企业高管的位子,你会关心哪些安全问题?
    springsecurity授权
    oracle java api
    oracle知识点
    fastdfs客户端上传和下载文件
    fastdfs知识点
    rabbitmq项目案例
  • 原文地址:https://www.cnblogs.com/l8l8/p/8672546.html
Copyright © 2020-2023  润新知