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