码迷,mamicode.com
首页 > Web开发 > 详细

js面向对象

时间:2018-03-29 22:31:39      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:指定   不同   null   报错   没有   数据类型   开发   相同   new   

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不会改变。

 

 实际开发中一定要注意。

 

js面向对象

标签:指定   不同   null   报错   没有   数据类型   开发   相同   new   

原文地址:https://www.cnblogs.com/l8l8/p/8672546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!