JavaScript对象
JavaScript对象是基本数据类型之一,是复合类型 Object 。
JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。
JavaScript创建对象的四种方式及如何添加,修改,删除,for...in遍历属性
1 一、通过对象字面量的形式创建对象。 2 可以将属性名括在引号之间,这三种方式一样: 3 var obj={x:1}; 4 var obj={'x'=1}; 5 var obj={"x"=1}; 6 例: var obj={ }; //没有任何属性的对象 7 // alert(typeof obj); 8 var obj1={x:1,y:2,z:3}; 9 var obj2={ 10 'x':1, 11 “y”:2, 12 username:'king', 13 'for':'Javascript关键词必须放到引号之间', 14 person:{ //对象里面依然可以放对象 15 username:'king', 16 name:12; 17 addr:北京" 18 } 19 } 20 二、通过new Object()创建对象。首字母大写 21 var obj3=new Object(); //创建一个空对象() 22 var arr=new Array(); //空数组,() 23 var date=new Date(); //日期时间对象 24 var reg=new RegExp('js'); //创建正则对象() 25 三、通过构造函数的形式创建对象。首字母大写 26 function Test(){ 27 } 28 例: var obj4=new Test(); 29 function Test1(num1,num2){ 30 this.n1=num1; 31 this.n2=num2; 32 } 33 var Obj5=new Test(5,6); 34 //alert(typeof obj5); // 弹出 object 35 //alert(obj5 inatanceof Test1); // obj5是否是Test1构建的对象 结果为 true 或 false 36 四、通过Object.create()创建对象 等同字面量 37 var obj6 = Object.create({x:1}); 38 var obj7 = Object.create(null); 39 二、1.查询属性 40 字面量形式创建属性 41 var person={ 42 king:'king', 43 username:'king', 44 username:"king", 45 sex:"男", 46 salary:1234.4, 47 sex:‘男’ 48 }; 49 //查询属性 50 console.log('用户名:'+person.username+'\n'+'姓名:'+person.sex); // 输出 用户名:king 换行 姓名:男 52 console.log('薪水:'+person['salary']+'n'+'地址:'+person['addr']); 53 // 以上 . 点和中括号[ ] 两种方法都可以 54 2.如果属性不确定需要使用[ ] 55 var key='username'; 56 console.log(person.key); 57 console.log(person.[key]); 58 如果1.字面量中忘记定义某一个东西,忘记在哪里写,通过var key=‘king’打印 出来。 59 构建函数{ }里面必须带引号 60 例:function PersonInfo('king', 34,'男'){ 61 this.name=name; 62 this.age=age; 63 } 64 var person1= new PersonInfo('king',34,'男'); 65 //console.log(person1.name+person( ['sex'] ); //输出king男 66 3.添加属性 67 var obj=(); //空对象 .点和[ ]都可以实现 68 obj.username='king'; 69 obj.age=2; 70 obj['test']='this is a test'; 71 console.log(obj.username+'\n'+obj.age+obj['test']); 724.修改指定属性 73 obj.username='queen'; 74 obj.['test']='emt'; 75 console.log(‘修改之后的名字+obj.username’); //输出queen 76 console.log(obj [' test' ] ); //输出ymt 775.通过delete删除指定属性 78 delete obj.test; 或 delete obj [ 'test' ] ; 79 console.log(obj['test']); //undefidend 806.通过 for / in 遍历属性 81 例:var obj1={ 82 x:1; 83 test:'this is a test'; 84 adu:'emt' 85 } 86 for(var p in obj1){ // 定义一个变量p,在p里面打印obj1里面所有的属性 87 console.log(p+'\n'); 88 } // 输出 x 换行 test 换行 adu 897.对象中有方法 90 例:var obj2{ 91 username=‘king’; 92 age=24; 93 sayhi:function(){ 94 return 'say hi' 95 }, 96 info:funtion(){ 97 return '用户名:'+this.username+'\n'+'年龄:'+ this.age ; 98 } 99 }; 100 console.log(obj2.say hi()); //输出 say hi 101 console.log(obj2.info()); //输出 用户名:king 换行 年龄:24 102 console.log(info); //以属性的方法读,会把整个函数打出来,函数没执行 103 例:function Person(username,age,sex,addr){ 104 this.username=username; 105 this.age=age; 106 this.sex=sex; 107 this.info=function(){ 108 return this.username+this.sex; 109 } 110 } // 构造函数属性function 继承给实例对象 p1 111 var p1=new Person('queen',34, 女); //创造一个实例 112 console.log(p1.info) //queen 34 113 p1.test='test is a test'; 114 console.log(p1.test); //test is a test